Подтвердить что ты не робот

Как установить JSF2 <приветствующий файл> с отображением сервлетов лиц?

У меня есть простое приложение JSF2, использующее Facelets. Мой web.xml устанавливается следующим образом: -

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping> 

Я хочу установить приложение по умолчанию на страницу приветствия, которая является /pages/login.xhtml. Кажется, я не могу заставить параметр приветственного файла выбрать это, когда перейду к корню контекста в браузере.

Моя настройка приветствия web.xml выглядит следующим образом: -

<welcome-file-list>
<welcome-file>/pages/login.jsf</welcome-file>
</welcome-file-list>

Как заставить страницу приветствия перейти на страницу входа и убедиться, что она проходит через сервлет лиц?

Если я использую следующее, отображает страницу, но она не прошла через сервлет лиц и поэтому лица не отображаются: -

<welcome-file-list>
<welcome-file>pages/login.xhtml</welcome-file>
</welcome-file-list>

Любая помощь оценивается!

4b9b3361

Ответ 1

Вам нужно создать пустой файл login.jsf, расположенный рядом с вашим файлом login.xhtml. По какой-то причине этот хак нужен, чтобы обмануть контейнер сервлетов, чтобы думать, что ваш файл приветствия существует.

Примечание. Ответный ответ будет по-прежнему являться ответом JSF, используя ваш файл login.xhtml, а не пустой файл login.jsf, который вы создаете.

Ответ 2

Дополнительная информация к оригинальному решению.

Это только обратная совместимость контейнеров сервлетов до версии 3. После запуска под Glassfish 3.1 или Tomcat 7, например, больше не требуется иметь пустой файл, подобный этому. Я проверил тесты, чтобы проверить использование Tomcat 6 и Tomcat 7. В прошлом я проводил тесты с Glassfish и предполагал, что проблема Tomcat 6 была в игре, так как мы запускаем наше программное обеспечение в Tomcat 6 в настоящее время и это не 3.0-сервлет-контейнер. Я использовал страницу JSP с переадресацией, но после того, как я полностью перешел к facelets, мне не понравилось, что у меня осталась страница JSP. Это прекрасное решение на ближайшую перспективу, пока мы не запустимся в контейнере сервлетов 3.0. Настоящая причина, по которой он работает, заключается в том, что все делается с помощью записи WEB.XML - это проверка существования файла. Реальная работа обрабатывается JSF, поскольку она улавливает запрос на страницу лиц, поэтому никогда не удаляет эту пустую страницу.