Иногда я вижу URL-адрес JSF: * .jsf, иногда * .xhtml, а иногда / faces / *. Зачем?
Попробовал изучить JSF, и иногда я вижу URL-адрес *.jsf
а иногда это *.xhtml
или /faces/*
. Может кто-то заполнит мои знания, пожалуйста? Когда я создаю JSF с использованием Facelet, расширение файла – .xhtml
, откуда происходит .jsf
URL-адреса .jsf
?
- Перемещение ресурсов в рамках WEB-INF
- Разница между / и / * в шаблоне url для отображения сервлета
- Загрузка контекста весной с помощью web.xml
- Что такое resource-ref в web.xml?
- Как включить значения из файла .properties в web.xml?
- Как определить порядок выполнения сервлет-фильтра, используя annotations в WAR
- Как настроить список приветственных файлов в web.xml
- SEVERE: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: ошибка при запуске
Расширение .jsf
– это место, где FacesServlet
находится во время периода JSF 1.2, часто отображаемого в web.xml
.
facesServlet *.jsf
Расширение .xhtml
является фактическим файлом Facelets, так как вы физически размещены в webcontent вашего webapp, например Webapp/WebContent/page.xhtml
.
Если вы вызываете эту страницу с расширением .jsf
, например http://localhost:8080/webapp/page.jsf
тогда будет вызван page.xhtml
, найдите файл page.xhtml
и проанализируйте / page.xhtml
его компоненты JSF. Если FacesServlet
не вызывается, то конечный пользователь получит исходный исходный код XHTML (который можно увидеть с помощью rightclick, View Source ).
Иногда используется расширение *.faces
или /faces/*
foldermapping. Но это происходило со времен JSF 1.0 / 1.1. Вы можете выбирать и использовать любое сопоставление, которое вы хотели бы позволить FacesServlet
слушать, даже если это ничего не говорит *.xyz
. Сама фактическая страница всегда должна иметь расширение .xhtml
, но это настраивается с помощью следующего
в web.xml
:
javax.faces.DEFAULT_SUFFIX .xml
Это изменит FacesServlet
чтобы найти page.xml
instad of (default) page.xhtml
.
Совсем недавно с использованием JSF / Facelets 2.0 было использовано сопоставление *.xhtml
. В JSF / Facelets 1.x нельзя было использовать то же расширение отображения, что и физический файл. Это приведет к бесконечному циклу. Но поскольку JSF / Facelets 2.0 это возможно, и это позволяет вам вызывать страницу по http://localhost:8080/webapp/page.xhtml
.
facesServlet *.xhtml
Таким образом, вам не нужно настраивать некоторые ограничения безопасности, чтобы скрыть исходные исходные файлы для случаев, когда пользователь- .jsf
меняет, например, .jsf
в URL-адресе .xhtml
в адресной строке браузера. Только инструментальные средства (IDE и плагины) и учебные ресурсы по-прежнему нуждаются в том, чтобы догнать *.jsf
переход от *.jsf
к *.xhtml
. Согласно JSF 2.3, FacesServlet
по умолчанию будет авторегистратором на *.xhtml
тоже (рядом с /faces/*
, *.faces
и *.jsf
). Это передано Mojarra 2.2.11.
Смотрите также:
- Можем ли мы использовать регулярные выражения в шаблонах URL-адресов web.xml?
- Установите домашнюю страницу по умолчанию через <приветственный файл> в проекте JSF
- JSF возвращает пустую / непараметрированную страницу с открытым / исходным источником XHTML / XML / EL вместо вывода HTML-вывода
- В чем разница между созданием страниц JSF с расширением .jsp или .xhtml или .jsf
- Какие файлы XHTML мне нужно вставить / WEB-INF, а какие нет?
- Настройте FacesServlet
, чтобы избавиться от расширения .xhtml