我使用的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>

如何强制欢迎页面后藤登录页面,并确保它穿过面的servlet?

如果我使用下面的页面显示,但它并没有通过的面的servlet消失,所以面临组分不呈现: -

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

任何帮助理解!

有帮助吗?

解决方案

您必须创建一个空的login.jsf文件,毗邻你login.xhtml文件。出于某种原因需要这个hack的servlet容器欺骗,以为您的欢迎文件存在。

注意:服务使用login.xhtml文件,而不是创建空login.jsf文件仍将是JSF响应的响应

其他提示

的附加信息原始溶液。

这是唯一的版本3之前的向后兼容性需要servlet容器一旦Glassfish的3.1或Tomcat 7下运行,例如,它不再需要具有这样一个空文件。我跑测试使用Tomcat 6和Tomcat 7。在过去,我不得不跑测试与Glassfish的验证和假设一个Tomcat 6问题是在发挥作用,因为我们在当前时间运行我们在Tomcat中6软件,它不是3.0 servlet容器。我一直在使用与重定向JSP页面,但完全移动到小面后,我不喜欢有一个遗留下来的JSP页面。这是在短期内,直到我们都在3.0 servlet容器中运行一个很好的解决方案。它的工作原理的真正原因是,所有目前正在与web.xml中的条目做的是该文件存在性的检查。能抓住该请求到面页的实际工作的处理关闭以JSF因此嗟该空页的任何东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top