我使用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吗?
答案 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>
元素,您可以在其中定义要打开的页面。