Удалить 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>

элемент, где вы можете определить страницу, которая будет открыта.

Другие вопросы по тегам