设置JSF起始页面的首选方法是什么?

时间:2010-08-11 11:51:43

标签: java deployment jsf facelets web.xml

我正在使用JSF 2.0来构建一个网站。 Eclipse生成了以下web.xml文件

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

因此,要查看我的应用程序,我必须访问“localhost / myApp / faces /index.xhtml”。我更愿意通过访问“localhost / myApp / index.xhtml”直接查看它

我看到两个选项:

将web.xml更改为以下

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

或者在我的基础目录中设置index.xhtml,它将javascript / meta直接指向faces / index.xhtml。

您认为哪个更好?或者你有另外一种方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

请勿在所有请求上映射FacesServlet。您不希望静态(非JSF)请求通过整个JSF生命周期。它只会增加不必要的开销。而是将FacesServlet映射到url-pattern *.xhtml上。

如果您还有其他xhtml个文件,而不需要通过JSF工厂,那么请选择不同的url-pattern,就像常用的*.jsf一样。您无需重命名实际文件扩展名,FacesServlet将自动找到正确的资源。

绝对不要在主页上使用JS / meta重定向。只需在<welcome-file>中将其声明为web.xml


也就是说,当拥有最新版本并正确配置时,Eclipse应该默认自动生成web.xmlFacesServlet映射到url-pattern *.jsf。确保您使用的是最新版本(Helios)并在Eclipse中完成所有操作(配置项目构面)。