16

これは私の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-patternを持つことはできません。別のURLパターンを定義してください。

しかし、なぜ?

そしてこれは私のウェルカムファイルです:

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

1 に答える 1

22

これは、そのコンテキストルートにヒットするすべてのものがFacesServletによって処理されることを意味するため、 FacesServletがそれを満たせない可能性があることをすでに知っているという要件(明らかに意味がありません)。

意図したマッピングを実現するには、.xhtmlFaceServletでマッピングを使用します

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
于 2013-03-04T21:27:22.923 に答える