Почему 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>
Ответы
Ответ 1
Поскольку это означало бы Все, которое когда-либо попадает в этот контекст-корни, будет обрабатываться FacesServlet, требование, которое FacesServlet уже знает, не может выполнить (очевидно, это не имеет смысла).
Чтобы достичь сопоставления, которое вы планируете использовать, используйте сопоставление .xhtml
на FaceServlet
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>