我正在阅读其中一本关于JSF的书( JavaSever Faces - 通过示例介绍),我发现以下摘录
在JSF 2.0之前,为了使JSF servlet能够翻译XHTML页面,你需要确保 web.xml文件包含一个servlet元素,指示javax.faces.webapp.FacesServlet类及其关联 servlet映射URL。自从JSF 2.0发布以来,如果使用Servlet 3.x容器,FacesServlet就会自动生成 为您映射,因此无需调整web.xml配置。
我决定尝试一下,但没有工作并得到404错误。
web.xml
<!-- Commenting this out in Glassfish server based on the book's guidelines -->
<!--
<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>
-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
在转移到Glassfish 4.x之前,我已经在Tomcat 8上使用了它。
奇怪的是,一旦我取消注释部署desriptor中的FacesServlet
映射,一切都很好,我不会得到404.
Glassfish 4.x是Servlet 3.x容器吗? 我做错了什么或书的指导方针不正确吗?