Настройте FacesServlet <url-pattern>, чтобы избавиться от расширения .xhtml
У меня есть Login.xhtml
и Home.xhtml
. Я настроил шаблон url в web.xml
следующим образом
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.xhtml</welcome-file>
</welcome-file-list>
Когда я запускаю весь проект, страница входа URL
похожа на это http://localhost:8080/fran/Login.xhtml
, здесь fran
- мое имя проекта..
Однако я бы хотел, чтобы это было http://localhost:8080/fran/Login/
вместо http://localhost:8080/fran/Login.xhtml
.
Как я могу это достичь? Можно ли настроить <url-pattern>
для каждой страницы, чтобы избавиться от расширения .xhtml
?
решаемые
Как упоминалось ниже в BalusC в комментарии... OmniFaces FacesViews является удивительным. Вот шаги, которые я сделал:
Что он в конфигурации. Он отлично работает.
Ответы
Ответ 1
Если ваша единственная причина - избавиться от расширения .xhtml
, посмотрите OmniFaces FacesViews. Он предлагает нуль-конфигурационный способ достижения этого путем размещения файлов вида в папке /WEB-INF/faces-views/
. В противном случае, если вы намереваетесь не изменять структуру своего проекта и хотите, чтобы ваши файлы просмотра находились в обычном месте и по-прежнему пользуетесь неограниченными URL-адресами, то это вопрос добавления следующего контекстного параметра:
<context-param>
<param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
<param-value>/*.xhtml</param-value>
</context-param>
В случае, если вы не хотите использовать OmniFaces, но хотите, чтобы вы сами хотели, вы просто посмотрите исходный код OmniFaces. Это открытый источник в соответствии с лицензией Apache 2.0.
Ответ 2
Взгляните на макеты: Довольно URL-адреса для JavaServer Faces,
Посмотрите на пример 2. create pretty-config.xml на главной странице
И взгляните на Глава 2. Начало работы