Подтвердить что ты не робот

Почему FacesServlet не может иметь URL-адрес/*.?

Это мой 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-шаблон/*. Укажите другой URL-адрес.

Но почему?

И это мой приветственный файл:

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

Ответ 1

Поскольку это означало бы Все, которое когда-либо попадает в этот контекст-корни, будет обрабатываться FacesServlet, требование, которое FacesServlet уже знает, не может выполнить (очевидно, это не имеет смысла).

Чтобы достичь сопоставления, которое вы планируете использовать, используйте сопоставление .xhtml на FaceServlet

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