、如果一個字符中包含了多個與國家化相關的數據,可以使用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"/>