轉自: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> <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> <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>
其他的配置元素:
應用管理相關配置:
<referenced-bean>:配置被引用Bean
註冊自定義組件的相關配置:
<validator>:註冊自定義輸入校驗器
<component>:註冊自定義組件
<render-kit>:註冊自定義組件繪製器和繪製器包
高級擴展配置:
<factory>:配置實例化JSF核心類的工廠