如何使用faces servlet mapping设置JSF2 <welcome-file>?</welcome-file>

时间:2011-01-06 15:23:49

标签: jsf-2 java-ee-6

我有一个使用Facelets的简单JSF2应用程序。我的web.xml设置如下: -

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping> 

我想将应用程序默认设置为欢迎页面/pages/login.xhtml。在访问浏览器中的上下文根时,我似乎无法获得欢迎文件设置。

我的web.xml欢迎设置如下: -

<welcome-file-list>
<welcome-file>/pages/login.jsf</welcome-file>
</welcome-file-list>

如何强制欢迎页面转到登录页面并确保它通过faces servlet?

如果我使用以下页面显示页面,但它没有通过faces servlet,因此不会呈现faces组件: -

<welcome-file-list>
<welcome-file>pages/login.xhtml</welcome-file>
</welcome-file-list>

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:23)

答案 1 :(得分:1)

原始解决方案的其他信息。

这只是版本3之前的servlet容器的向后兼容性需求。例如,在Glassfish 3.1或Tomcat 7下运行时,不再需要像这样的空文件。我运行测试来验证使用Tomcat 6和Tomcat 7.过去我使用Glassfish运行测试并假设Tomcat 6问题正在发挥作用,因为我们当前在Tomcat 6中运行我们的软件并且它不是3.0 servlet容器。我一直在使用带有重定向的JSP页面,但在完全转移到facelets后,我不喜欢在JSP页面上留下一个。这是一个很好的解决方案,直到我们在3.0 servlet容器中运行。它工作的真正原因是所有正在完成的WEB.XML条目是对文件存在的检查。真正的工作被处理到JSF,因为它捕获了对faces页面的请求,因此它永远不会点击任何空页面。