1. 程式人生 > >JSF探索--URL對映,web.xml配置

JSF探索--URL對映,web.xml配置

web.xml配置

   <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>

所有的JSF頁面都傳入Faces Servlet中,該Faces Servlet是JSF實現程式碼的一部分。當請求JSF頁面是,為了保證啟用正確的servlet,JSF Url必須使用一個特殊格式。這裡都有一個字首/faces。servlet-mapping元素確保了所有帶該字首的URL都由Faces Servlet處理。
例如,不能僅輸入localhost:8080/login/index.xhtml,必須是localhost:8080/login/faces/index.xhtml。對映規則啟用作為JSF實現入口點的FacesServlet。
如果檢視一個不帶/faces字首的JSF頁面,瀏覽器將在頁面顯示HTML標籤,但會忽略JSF標籤。
也可以定義一個擴充套件對映替代/faces字首對映,在web.xml中配置
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/*.faces</url-pattern>
  </servlet-mapping>
然後使用<pre><span style="font-family:Microsoft YaHei;">localhost:8080/login/index.faces,這個url啟用FacesServlet,然後jsf實現去除faces字首並載入檔案/login/index.xhtml</span>
嚴格的講JSF頁面並非XHTML檔案,他們的目的僅在於生成這類檔案,如果想為JSF頁面檔案使用.jsf副檔名,需在web.xml中配置
<context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.jsf</param-value>
  </context-param>
下面的配置增加對除錯JSF應用程式的支援
<context-param>
  <param-name>javax.faces.PROJECT_STAGE</param-name>
  <param-value>DEVELOPMENT</param-value>
  </context-param>
選項有Development、UnitTest、SystemTest、Production