爪哇一角

          共同探討STRUTS#HIBERNATE#SPRING#EJB等技術
          posts - 3, comments - 6, trackbacks - 0, articles - 99
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          三 JSF國際編碼支持

          Posted on 2009-01-20 14:47 非洲小白臉 閱讀(175) 評論(0)  編輯  收藏 所屬分類: JSF

          JSF國際化(Internnationalization)訊息處理是基于Java對國際化的支援,您可以在一個訊息資源檔中統一管理訊息資源,messages_en.properties

          例如:

          nameText=name
          passText=password

           

          同時,你也可以定義對應于中文的統一管理訊息資源,messages_zh_TW.properties

          例如:

          nameText=\u540d\u7a31

          passText=\u5bc6\u78bc

          資源中的文字需要進行Unicode重新編碼,可以用jdk自帶的native2ascii工具實現。

          JsfInternMessage.jsp

          <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

          <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

          <%@page contentType="text/html;charset=utf-8"%>

           

          <f:view locale="#{user.locale}">

                 <f:loadBundle basename="messages" var="msgs" />

                 <html>

                 <head>

                 <title><h:outputText value="#{msgs.titleText}" /></title>

                 </head>

                 <body>

                 <h:form>

                        <!—請輸入你的姓名 -->

                        <h3><h:outputText value="#{msgs.hintText}" /></h3>

                        <!-- 姓名 -->

                        <h:outputText value="#{msgs.nameText}" />:

          <h:inputText value="#{user.name}" />

                        <p><!-- 送出 --><h:commandButton id="button1"

                               value="#{msgs.commandText}" action="success" /> <!-- 調用不同的資源文件,改變頁面的表示語言 -->

                        <h:commandButton value="#{msgs.Text}"

                               actionListener="#{user.changeLocale}" />

          觸發user里的方法,返回不同的值,從而達到調用不同資源文件的目的。

           

           
                 </h:form>

                 </body>

                 </html>

          </f:view>

           

          UserBean.java

          public void changeLocale(ActionEvent e) {

                  if(locale.equals("en"))

                  locale = "zh_TW";

                  else

                  locale = "en";

              }

          具體代碼參看示例程序.(JsfInternMessage.jsp,UserBean.java,messages_en.properties,messages_zh_TW.properties)

           

          注意:JSP頁面頭部要用下面的標簽包住。

          <f:view locale="#{user.locale}">

          <f:loadBundle basename="messages" var="msgs"/>

          上面標簽的意思是,本JSP調用messages_"#{user.locale}".properties資源文件,如果user.locale=en,則調用messages_en.properties文件。

          http://localhost:8080/jsfTest/pages/jsfInternMessage.faces 就可以正常執行了。

           

          主站蜘蛛池模板: 汪清县| 怀来县| 静海县| 安福县| 东山县| 霍州市| 大方县| 太康县| 韩城市| 张家口市| 辽阳市| 额尔古纳市| 澎湖县| 邳州市| 响水县| 张家口市| 麻阳| 安康市| 双峰县| 南召县| 丹江口市| 梅河口市| 霍邱县| 萨嘎县| 高唐县| 江山市| 彭阳县| 海丰县| 克什克腾旗| 长葛市| 瓦房店市| 柳州市| 平凉市| 满洲里市| 荥经县| 达日县| 若羌县| 故城县| 佛学| 子洲县| 措勤县|