Иногда я вижу URL-адрес JSF *.jsf, иногда *.xhtml, а иногда /face /*. Зачем?
Я пытался изучить JSF, и иногда я вижу URL *.jsf
а иногда *.xhtml
или же /faces/*
, Может кто-нибудь заполнить мои знания, пожалуйста? Когда я создаю JSF с помощью Facelet, расширение файла .xhtml
так где же .jsf
Расширение URL взято?
1 ответ
.jsf
расширение, где FacesServlet
в период JSF 1.2 часто отображается в web.xml
,
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
.xhtml
расширение - это фактический файл Facelets, который вы физически поместили в веб-контент вашего веб-приложения, например Webapp/WebContent/page.xhtml
,
Если вы вызываете эту страницу с .jsf
расширение, например http://localhost:8080/webapp/page.jsf
тогда FacesServlet
будет вызван, найдите page.xhtml
файл и синтаксический анализ / рендеринг его компонентов JSF. Если FacesServlet
не вызывается, тогда конечный пользователь получит необработанный исходный код XHTML (что можно увидеть, щелкнув правой кнопкой мыши, View Source).
Иногда *.faces
расширение или /faces/*
сопоставление папок было использовано. Но это было в далёком возрасте JSF 1.0/1.1. Вы можете выбирать и использовать любое отображение, которое хотите FacesServlet
слушай, даже если это ничего не говорит *.xyz
, Сама фактическая страница всегда должна иметь .xhtml
расширение, но это настраивается следующим <context-param>
в web.xml
:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
Это изменит FacesServlet
найти page.xml
instad of (по умолчанию) page.xhtml
,
Совсем недавно, с JSF/Facelets 2.0 *.xhtml
отображение использовалось. В JSF/Facelets 1.x было невозможно использовать то же расширение сопоставления, что и физический файл. Это привело бы к бесконечному циклу. Но начиная с JSF/Facelets 2.0 это возможно, и это позволяет вам вызывать страницу по http://localhost:8080/webapp/page.xhtml
,
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Таким образом, вам не нужно настраивать некоторые ограничения безопасности, чтобы скрыть необработанные исходные файлы для случаев, когда, например, изменяется конечный пользователь .jsf
в URL к .xhtml
в адресной строке браузера. Только инструментальные средства (IDE и плагины) и учебные ресурсы по-прежнему должны наверстать упущенное движение от *.jsf
в *.xhtml
, Согласно JSF 2.3, FacesServlet
по умолчанию будет автоматически зарегистрирован на *.xhtml
тоже (рядом с /faces/*
, *.faces
а также *.jsf
). Это перенесено на Мохарру 2.2.11.
Смотрите также:
- Можем ли мы использовать регулярные выражения в шаблонах URL web.xml?
- Установить домашнюю страницу по умолчанию через
в проекте JSF - JSF возвращает пустую / неразобранную страницу с простым / необработанным исходным кодом XHTML/XML/EL вместо отрисованного вывода HTML
- В чем разница между созданием страниц JSF с расширением.jsp,.xhtml или.jsf?
- Какие файлы XHTML мне нужно поместить в /WEB-INF, а какие нет?
- Настройте FacesServlet
, чтобы избавиться от расширения.xhtml .