为什么FacesServlet不能有/ *的url模式。?

时间:2013-03-04 20:23:20

标签: jsf java-ee url-pattern servlet-mapping

这是我的web.xml:

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

当我导航到:

http://localhost:8080/LearningRoot/index.xhtml

我可以看到页面很好,但是当我导航到:

http://localhost:8080/LearningRoot/

我收到错误:

  

发生错误:

     

FacesServlet不能有/ *的url模式。请定义不同的网址格式。

但为什么?

这是我的欢迎档案:

<welcome-file-list>
    <welcome-file>/index.xhtml</welcome-file>
</welcome-file-list>

1 个答案:

答案 0 :(得分:19)

因为这意味着 Everything 曾经遇到过上下文 - root将由FacesServlet处理,FacesServlet已经知道它无法实现的要求(显然没有意义)。

要实现您想要的映射,请在FaceServlet上使用.xhtml映射

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