、如果一个字符中包含了多个与国家化相关的数据,可以使用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"/>