2010-06-09 50 views
1

我已经使用tomcat作为应用程序服务器编写了一个facelets Web应用程序。我的程序有一个foobar.xhtml和网址是:使用JSF从URL中删除Foobar.xhtml

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

我可以改变的东西在我的应用程序,以便链接到:

http://localhost:8080/Myapplication/

..will实际呈现我的申请http://localhost:8080/Myapplication/foobar.faces

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

回答

1

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

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

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

+0

谢谢!我已经尝试过欢迎文件列表,但它没有奏效。现在我明白这是一个tomcat问题。伟大的解决。 – Roalt 2010-06-10 06:18:40

0

web.xml中有

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

元素,用户可以定义页面被打开。