Удалить Foobar.xhtml из URL с помощью JSF - PullRequest
1 голос
/ 09 июня 2010

Я написал веб-приложение для facelets, используя tomcat в качестве сервера приложений. В моей программе есть файл foobar.xhtml, а URL-адрес:

http://localhost:8080/Myapplication/foobar.faces

Могу ли я что-то изменить в своем приложении, чтобы ссылка на:

http://localhost:8080/Myapplication/

.. фактически сделает мое приложение на http://localhost:8080/Myapplication/foobar.faces?

Кроме того, можно ли перенаправить http://localhost:8080/Myapplication/ на http://localhost:8080/Myapplication/foobar.faces?

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Для этого вы обычно используете запись <welcome-file> в web.xml. Но, к сожалению, это не работает должным образом, по крайней мере, на Tomcat при использовании вымышленных URL-адресов, которые должны передаваться через сервлет, например FacesServlet. Tomcat будет сканировать физический файл на диске, соответствующий точному имени, перед пересылкой. Если его нет, вы увидите страницу ошибки 404 по умолчанию.

Использование /foobar.xhtml в качестве <welcome-file> также не будет работать, так как FacesServlet требует, чтобы эта страница была проанализирована, чтобы заставить работать весь JSF.

Один из способов исправить это - поместить еще один настоящий файл /foobar.faces рядом с настоящим файлом /foobar.xhtml. Его не нужно заполнять кодом, его можно оставить пустым. Для того, чтобы Tomcat открыл нужную страницу в качестве страницы приветствия, достаточно наличия физического файла.

0 голосов
/ 09 июня 2010

web.xml имеет элемент

<welcome-file-list>
    <welcome-file>foobar.faces</welcome-file>
</welcome-file-list>

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

...