#java #jsf #glassfish
#java #jsf #glassfish
Вопрос:
Я читал, что к facelet можно получить доступ с помощью GF 3.1 непосредственно с помощью:
- http://localhost:8080/myapp/page.faces;
- http://localhost:8080/myapp/page.jsf;
- http://localhost:8080/myapp/faces/page.xhtml.
потому что это сопоставление выполняется сервером автоматически.
Однако последнее сопоставление не работает. У меня следующая ошибка: The requested resource () is not available.
Есть идеи? Спасибо!
Комментарии:
1. где вы это прочитали, ссылка, пожалуйста
2. В книге Core JavaServer Faces Третье издание «»ПРИМЕЧАНИЕ: Некоторые серверы приложений (включая GlassFish) автоматически предоставляют сопоставление сервлетов для шаблонов /faces/*, *.faces и *.jsf».
3. Также в книге: Packtpub Java EE 6 с сервером приложений GlassFish 3: «»В традиционных веб-приложениях Java мы определяем шаблоны URL, которые будут обрабатываться определенным сервлетом. Специально для JSF обычно использовались суффиксы .jsf или .faces. Другим часто используемым отображением URL для JSF был префикс /faces. По умолчанию GlassFish автоматически добавляет все три этих сопоставления в сервлет faces»»
Ответ №1:
ПРИМЕЧАНИЕ: Некоторые серверы приложений (включая GlassFish) автоматически предоставляют сопоставление сервлетов для шаблонов /faces/*, *.faces и *.jsf
В нем не сказано, что оно сопоставляется с .xhtml
и, следовательно, результат.
Комментарии:
1. Нет, это отображение, вызываемое как префикс, означает, что обрабатывается каждый файл, который я записываю после /faces /. Поэтому, когда я пишу /faces/page.xhtml, сервер (контроллер FaceServlet) должен удалить /faces и указать на page.xhtml.
Ответ №2:
Вы проверили, что поддержка JSF включена в ваш веб-проект. Это было проблемой для меня.
В Eclipse IDE:
- Щелкните правой кнопкой мыши ваш проект -> Свойства
- Выберите: Грани проекта и подтвердите, что установлен флажок JavaServer Faces.
- Если нет, проверьте это, и в моем случае потребовалась дополнительная настройка, но я думаю, что каждый может разобраться с этим дальше