國際化動態文件和其他標籤的實例應用

 

一  動態文件的概念

1.什麼時候使用動態文本

如果字符串中包含了多個與國際化相關的數據,可以使用MessageFormat類對這些數據進行批量處理 ----比如一段字符串中包含時間、數字、貨幣、、可以進行批量處理

(1)MessageFormat類允許開發人員用佔位符替換掉字符串中的敏感數據(即國際化相關的數據)。

(2)MessageFormat類在格式化輸出包含佔位符的文本時,messageFormat類可以接收一個參數數組,以替換文本中的每一個佔位符。

(3)批量處理是把國際化的文件用佔位符代替,組成一個數組

二  動態文本的使用

1.在java中動態文本的使用

(1)把字符串改爲(模式字符串)佔位符

     At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage

代替爲:

模式字符串:

pattern =At [0], a hurricance destroyed [1] houses and caused [2] of damage

(2)設置動態文本的模型,並指明顯示的國家,可以值確定模式,默認的國家的當地的

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

(3)創建數組爲模式字符串賦值(爲佔位符賦值)

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

(4)格式轉換並輸出

      String result = mf.format(objs);

      System.out.println(result);

  注:按以上的說法,只是固定的把它寫到了java文件中,可以把模式字符串部署到資源組中

2.在jsp頁面中動態文本的運用----標籤的使用

   (1)創建資源包對象,並存在bundle對象中

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

(2)讀取並輸出

       <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:message>標籤中,沒有key屬性,可以在<fmt:message>的雙標籤中寫上在value中寫的文件中的鍵,例:

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

       title

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

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

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

    </fmt:message>      

三  國際化中其他標籤的使用

1.亂碼問題  

用java方法解決

 <%

    request.setCharacterEncoding("utf-8");

   %>

   --%>

 用國際化標籤設置

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

2.設置時區

    (1)<fmt:timeZone>標籤

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

    </fmt:timeZone>

注:<fmt:timeZone>設置時區 ,但是他的設置值只對標籤體中的內容有效   

    (2)<fmt:setTimeZone>標籤

       設置時間

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

        <fmt:setTimeZone value="GMT+08:00" />

       <%---日期類型的轉換 --%>

       <fmt:formatDate value="${date}" type="both" dateStyle="long" timeStyle="short" var="time1" scope="request" /><br/>

       ${time1}

      

       <fmt:setTimeZone value="GMT+07:00" />

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

       

     <fmt:formatDate value="${date}" pattern="yyyy.MM.dd HH:sss.SSS a"/>

 

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