我正在使用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。
您认为哪个更好?或者你有另外一种方法可以做到吗?
答案 0 :(得分:1)
请勿在所有请求上映射FacesServlet
。您不希望静态(非JSF)请求通过整个JSF生命周期。它只会增加不必要的开销。而是将FacesServlet
映射到url-pattern
*.xhtml
上。
如果您还有其他xhtml
个文件,而不需要通过JSF工厂,那么请选择不同的url-pattern
,就像常用的*.jsf
一样。您无需重命名实际文件扩展名,FacesServlet
将自动找到正确的资源。
绝对不要在主页上使用JS / meta重定向。只需在<welcome-file>
中将其声明为web.xml
。
也就是说,当拥有最新版本并正确配置时,Eclipse应该默认自动生成web.xml
,FacesServlet
映射到url-pattern
*.jsf
。确保您使用的是最新版本(Helios)并在Eclipse中完成所有操作(配置项目构面)。