Удалить Foobar.xhtml из URL с помощью JSF
Я написал веб-приложение для facelets, используя tomcat в качестве сервера приложений. В моей программе есть файл foobar.xhtml, а URL-адрес:
http://localhost:8080/Myapplication/foobar.faces
Могу ли я что-то изменить в своем приложении, чтобы ссылка на:
HTTP: // локальный: 8080 / MyApplication /
.. будет ли фактически отображать мое приложение на http://localhost:8080/Myapplication/foobar.faces?
Кроме того, можно ли перенаправить http://localhost:8080/Myapplication/foobar.faces на http://localhost:8080/Myapplication/foobar.faces?
2 ответа
Вы обычно используете <welcome-file>
запись в web.xml
за это. Но, к сожалению, это не работает должным образом, по крайней мере, на Tomcat при использовании вымышленных URL-адресов, которые должны передаваться через сервлет как FacesServlet
, Tomcat будет сканировать физический файл на диске с точным именем перед пересылкой. Если его нет, вы увидите страницу ошибки 404 по умолчанию.
С помощью /foobar.xhtml
как <welcome-file>
также не будет работать, так как эта страница должна быть проанализирована FacesServlet
чтобы заставить все вещи JSF работать.
Один из способов исправить это - разместить /foobar.faces
файл там рядом с реальным /foobar.xhtml
файл. Его не нужно заполнять кодом, его можно оставить пустым. Для того, чтобы Tomcat открыл нужную страницу в качестве страницы приветствия, достаточно наличия физического файла.
web.xml имеет
<welcome-file-list> <welcome-file>foobar.faces</welcome-file> </welcome-file-list>
элемент, где вы можете определить страницу, которая будет открыта.