国际化标签后续

 

、如果一个字符中包含了多个与国家化相关的数据,可以使用MessageFormat类对这些数据进行批量处理。

利用占位符将含有国际化相关的数据的字符串转换成模式字符串,MessageFormat类可以接受一个参数数组,以替换文本中的每一个占位符

例如:

       1、

//模式字符串,即包含占位符的字符串,将时间、数字、货币等多个被占位符代替

String pattern="At {0,time,short} on {0,date,long},a hurricance destroyed {1,number} houses and causes {2,number,currency} of damage";

//messageFormat类可以讲字符串中包含了时间、数字、货币等多个国计划的进行批量处理

       MessageFormat mf=new MessageFormat(pattern,Locale.US);

       //构建参数数组,为占位符赋值

       Object [] objs={new Date(),new Integer(99),new Double(1e7)};

       String str1=mf.format(objs);

       System.out.println(str1);

 

    2、

处理资源文件中的字符串

//读取资源文件

ResourceBundle bundle=ResourceBundle.getBundle("com.hbsi.resource.myresource",Locale.CHINA);

       String result=bundle.getString("title");

       MessageFormat mf1=new MessageFormat(result,Locale.CHINA);

       Object [] objs1={new Date(),new Integer(99),new Double(1e7)};

       String str2=mf1.format(objs1);

System.out.println(str2);

 

二、使用国际化标签在jsp页面中完成对一个字符中包含了多个与国家化相关的数据的操作

       <jsp:useBean id="date" class="java.util.Date"></jsp:useBean>

  <%

    request.setAttribute("number1",new Integer(99));

    request.setAttribute("number2",new Double(1e7));

   %>

 

<fmt:setBundle basename="com.hbsi.resource.myresource" var="bundle" scope="request"/>

    <fmt:message key="username" bundle="${bundle }"/><br>

    <fmt:message key="title" bundle="${bundle }">

    <fmt:param value="${date }"></fmt:param>

    <fmt:param value="${number1 }"></fmt:param>

    <fmt:param value="${number2 }"></fmt:param>

</fmt:message>

 

三、<fmt:requestEncoding>标签

    用于设置请求消息的字符编码

例子: 

<%--使用国际化标签库解决字符编码集问题,该方法内部调用 request.setCharacterEncoding()方法 --%>

   <%--应放在获取任何请求域中的参数之前 --%>

  <fmt:requestEncoding value="utf-8"/>

  ${param.fav }

    <form action="" method="post">

    <input type="text" name="fav"/>

    <input type="submit" value="submit">

    </form>

四、<fmt:timeZone>标签

       用于设置时区,且设置值只对其标签体部分有效

例子:

<%--设置时间的标签 --%>

    <%--只对标签体内的内容有效 --%>

    <fmt:timeZone value="GMT+7:00">

<fmt:formatDate value="${date }" type="time" dateStyle="short" timeStyle="full"/>

</fmt:timeZone><br>

 

五、<fmt:setTimeZone>标签

    用于在jsp页面中显示地设置时区,并将设置的时区信息以TimeZone对象的形式保存到某个web域中

 

例子:


<%--对所有的都有效 --%>

    <fmt:setTimeZone value="CMT+8:00"/><br>

    <%--将时间日期进行格式化的标签 --%>  

<fmt:formatDate value="${date }" type="both" dateStyle="long" timeStyle="short"/>

    <br>

    <fmt:formatDate value="${date }" pattern="yyyy.MM.dd HH:mm:ss.SS"/>

   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章