Java學習

          java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

           

          JSF全面理解之消息處理

          JSF里怎樣進行消息處理呢?本文就此介紹一下JSF的消息處理過程。


          JSF的消息處理主要圍繞著javax.faces.application.FacesMessage,javax.faces.context.FacesContext,java.util.Locale,h:message,h:messages進行。

          javax.faces.application.FacesMessage:JSF消息定義。
          javax.faces.context.FacesContext:JSF 具有TheadLocale屬性的容器。
          java.util.Locale:JSF通過它來作多語言支持了。
          h:message/h:messages:用來在JSP里顯示JSF消息的標簽了。

          JSF消息的添加:
          JSF里添加JSF消息只需要簡單地調用FacesContext.addMessage即可。這個方法可以把指定的消息注冊到facesContext里,之后便可在JSP里加以顯示。
          facesContext.addMessage(clientId, FacesMessage);
          clientId:與該消息相關聯的組件ID,未指定的時候,為全局消息
          FacesMessage:JSF消息體定義。它有3個屬性:
          1)     FacesMessage.Severity:消息的級別。可以為FacesMessage.SEVERITY_INFO(一般信息), FacesMessage.SEVERITY_WARNING(警告),FacesMessage.SEVERITY_ERROR(錯誤), FacesMessage.SEVERITY_FATAL(致命錯誤)。
          2)    消息概要
          3)    消息詳細內容
          使用例:
          FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                  summary,
                                  detail);
          FacesContext.getInstance().addMessage(clientId, msg);

          JSF消息的顯示:
          JSF消息的顯示就更簡單了,只需在JSP里調用h:message或h:messages即可。
          例:
          <h:messages globalOnly="true" styleClass="error" showSummary="" showDetail="" layout="table" />
          globalOnly:為true時,只顯示全局消息。
          showSummary:是否顯示消息概要。
          showDetail:是否顯示消息詳細。
          其他:請查看相應的資料,這里就不做介紹了。

          <h:message for="username" showSummary="" showDetail=""></h:message>
          for:跟消息綁定的組件ID。

          上面簡單地介紹了如何添加,以及如何在畫面里顯示JSF消息。但如何通過資源文件顯示定義的消息呢?

          下面我們從下面兩方面來介紹:
          1,通過JSF message-bundle定義的資源文件配置消息
          2,在自定義的資源文件里配置消息

          通過JSF message-bundle定義的資源文件配置消息
          在faces-config.xml里加上類似如下定義:
          <faces-config>
          <application>
            <message-bundle>Messages</message-bundle>
            <locale-config>
             <default-locale>en</default-locale>
             <supported-locale>kr</supported-locale>
             <supported-locale>ja</supported-locale>
             <supported-locale>zh</supported-locale>
            </locale-config>
          </application>

          ...
          </faces-config>

          然 后,為message-bundle Messages分別定義各自的配置文件:比如英文為Messages_en.properties,韓文為 Messages_kr.properties,日文為Messages_ja.properties,中文為 Messages_zh.properties。

          定義消息:
          key=message value … {0}…{1}..
          定義好之后,便可以通過
          Locale locale = facesContext.getViewRoot().getLocale()

          取得用戶的語言配置;
          String bundleName = facesContext.getApplication().getMessageBundle();
          String messageBundle = ResourceBundle.getBundle( bundleName, locale,
                                  Thread.currentThread().getContextClassLoader() );

          取得定義好的message-bundle,余下的操作就是從ResourceBundle里取出消息(請參考ResourceBundle相關資料),new 一個FacesMessage,請參考上面的說明。

          使用自定義資源文件消息,做法同上,這里也不做介紹了。

          posted on 2008-10-10 08:53 找個美女做老婆 閱讀(2300) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          本blog已經搬到新家了, 新家:www.javaly.cn
           http://www.javaly.cn

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 民勤县| 奉节县| 元谋县| 寿阳县| 山阳县| 东莞市| 翁牛特旗| 钦州市| 广水市| 中超| 韶山市| 屏边| 义马市| 新津县| 兴仁县| 盐亭县| 永仁县| 三原县| 平昌县| 上林县| 合川市| 蓬溪县| 青田县| 大港区| 昌宁县| 衡山县| 万荣县| 广河县| 平顶山市| 顺平县| 宜都市| 花莲县| 太湖县| 项城市| 江孜县| 祁连县| 方正县| 泰兴市| 吉安市| 兴业县| 驻马店市|