1. 程式人生 > >JSF web.xml的各類參數屬性配置

JSF web.xml的各類參數屬性配置

blog att render 生命 val file 是否 模型 indent

出處:http://www.cnblogs.com/zxpgo/articles/2570175.html

感謝作者的分享!!

——————————————————————————————————————————————————

JSF提供的核心控制器是javax.faces.webapp.FacesServlet。

web.xml中的welcome-file-list標簽作用:當用戶在瀏覽器中輸入的URL不包含某個servlet名或JSP頁面時,welcome-file-list元素可指定顯示的默認文件。 welcome-file子元素用於指定默認文件的名稱。welcome-file-list元素可以包含一個或多個welcome-file子元素。如果在第一個welcome-file元素中沒有找到指定的文件,Web容器就會嘗試顯示第二個,以此類推。

在web.xml中配置FacesServlet核心控制器:

技術分享
    <!-- JSF的核心控制器 FacesServlet -->
    <servlet>
        <servlet-name>FacesServlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    </servlet>
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>FacesServlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
技術分享

這裏設置了攔截.jsf結尾的請求。

需要為JSF配置一些額外的參數,可以在web.xml中使用<context-param>元素進行配置。下面是常用的一些配置:



技術分享
<!-- 配置JSF程序狀態的保存位置,如果設置成server則保存在session中,
 如果保存在client中可以保證服務器重啟應用狀態也不會丟失 -->
    <context-param>
        <description>
            指示是在客戶端(client)還是在服務器端(server)保存UI組件的狀態和
            session信息, server表示保存到服務器端,client表示保存到客戶端,
            默認為server。
        </description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <!-- 程序狀態保存在客戶端 -->
        <param-value>client</param-value>
    </context-param>

    <!-- 指定JSF映射資源時的默認後綴,默認為.jsp -->
    <context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.jsp</param-value>
    </context-param>

    <!-- 指定JSF所管理的生命周期實例的標識符 -->
    <context-param>
        <description>
            當在這個應用中處理JSF請求時,
            所使用的生命周期實例的標識符.
            默認的生命周期模型(沒看懂)
        </description>
        <param-name>javax.faces.LIFECYCLE_ID</param-name>
        <param-value></param-value>
    </context-param>

    <!-- 指定JSF配置文件的保存位置 -->
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-nav.xml</param-value>
    </context-param>

    <!-- 指定是否需要驗證自定義組件 -->
    <context-param>
      <description>
            Set this flag to true if you want the JSF
            Reference Implementation to verify that all of the application
            objects you have configured (components, converters,
            renderers, and validators) can be successfully created.
            Default value is false.
        </description>
        <param-name>javax.faces.verifyObjects</param-name>
        <param-value>true</param-value>
    </context-param>

    <!-- 指定是否需要驗證XML文件 -->
    <context-param>
           <description>
            Set this flag to true if you want the JavaServer Faces
            Reference Implementation to validate the XML in your
            faces-config.xml resources against the DTD. Default
            value is false.
  
           </description>
        <param-name>javax.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param>

    <!-- 當設置在服務器端保存狀態時,控制session保存的視圖數量,-1表示沒有限制 -->
    <context-param>        
        <param-name>javax.faces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
        <param-value>-1</param-value>
    </context-param>
技術分享


JSF的配置文件faces-config.xml:

最常用的兩個配置元素:

<managed-bean>:JSF應用中所有的托管Bean都放在該元素下 技術分享
  <managed-bean>
       <managed-bean-name>user</managed-bean-name>
       <managed-bean-class>
       onlyfun.caterpillar.UserBean
       </managed-bean-class>
       <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>
技術分享 <navigation-rule>:用於管理JSF應用的導航規則 技術分享
   <navigation-rule>
       <from-view-id>/pages/index.jsp</from-view-id>
       <navigation-case>    
         <from-outcome>success</from-outcome>
         <to-view-id>/pages/welcome.jsp</to-view-id>
       </navigation-case>
       <navigation-case>
         <from-outcome>failure</from-outcome>
         <to-view-id>/pages/index.jsp</to-view-id>
       </navigation-case>
    </navigation-rule>
技術分享

其他的配置元素:
應用管理相關配置:

<application>:用於管理JSF應用相關配置
<referenced-bean>:配置被引用Bean

註冊自定義組件的相關配置:

<converter>:註冊自定義轉換器
<validator>:註冊自定義輸入校驗器
<component>:註冊自定義組件
<render-kit>:註冊自定義組件繪制器和繪制器包

高級擴展配置:

<phase-listener>:註冊生命周期監聽器
<factory>:配置實例化JSF核心類的工廠 參考:http://www.itzhai.com/jsf-notes-jsf-configuration-file-configuration-instructions-and-common-elements.html http://baike.baidu.com/view/1002819.htm http://javaee.blog.51cto.com/941919/202857

JSF web.xml的各類參數屬性配置