使用JSF从URL中删除Foobar.xhtml

时间:2010-06-09 13:56:39

标签: java web-applications tomcat jsf facelets

我使用tomcat作为应用程序服务器编写了一个facelets Web应用程序。我的程序有一个foobar.xhtml,其URL是:

http://localhost:8080/Myapplication/foobar.faces

我可以在应用程序中更改某些内容,以便链接到:

http://localhost:8080/Myapplication/

..实际上会在http://localhost:8080/Myapplication/foobar.faces上呈现我的应用程序吗?

或者,可以将http://localhost:8080/Myapplication/重定向到http://localhost:8080/Myapplication/foobar.faces吗?

2 个答案:

答案 0 :(得分:1)

您通常会在<welcome-file>中使用web.xml条目。但不幸的是,当使用虚拟URL时,这至少在Tomcat上无法正常工作,这些URL将通过像FacesServlet这样的servlet传递。在转发之前,Tomcat将扫描与确切名称匹配的磁盘上的物理文件。如果它不存在,那么您将只面对默认的404错误页面。

/foobar.xhtml用作<welcome-file>也无法正常工作,因为该页面需要FacesServlet解析才能使所有JSF工作正常。

解决此问题的方法之一是在真实的/foobar.faces文件旁放置另一个真正的/foobar.xhtml文件。它不需要填充代码,它可以留空。只需存在物理文件就足以让Tomcat以欢迎页面的形式打开所需的页面。

答案 1 :(得分:0)

web.xml有一个

<welcome-file-list>
    <welcome-file>foobar.faces</welcome-file>
</welcome-file-list>

元素,您可以在其中定义要打开的页面。