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
 
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐