Иногда я вижу URL jsf * .jsf, иногда * .xhtml, а иногда / лица / *. Почему?

StackOverflow https://stackoverflow.com/questions/3008395

Вопрос

Пытались изучить JSF, а иногда я вижу URL *.jsf а иногда есть *.xhtml или /faces/*. Отказ Может кто-нибудь наполнить свои знания, пожалуйста? Когда я создаю JSF с помощью корпуса, расширение файла .xhtml, так где же .jsf УДАЛЕНИЕ УСЛОВИИ ПРИНИМАЮТ?

Это было полезно?

Решение

То .jsf расширение там, где FacesServlet находится во время периода JSF 1.2, часто отображается в web.xml.

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

То .xhtml Расширение имеет действительный Файл Facelets, как вы физически помещаете в веб-концептуальность вашего WebApp, например Webapp/WebContent/page.xhtml.

Если вы вызываете эту страницу с .jsf Расширение, например, http://localhost:8080/webapp/page.jsf тогда FacesServlet будет вызван, найдите page.xhtml Файл и анализ / визуализация его компоненты JSF. Если то FacesServlet не вызывается, то идя в конечном итоге, получая исходный код RAW XHTML (который можно увидеть rightClick, Просмотреть исходный код).

Иногда а *.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 (по умолчанию) page.xhtml.

Совсем недавно с JSF / Facelets 2.0 A *.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>

Таким образом, вам не нужно настраивать некоторые ограничения безопасности, чтобы скрыть исходные файлы Soar Source для случаев всякий раз, когда Enduser меняется, например, .jsf в URL .xhtml В браузере адресной панель. Только инструменты (IDES и плагины) и учебные ресурсы все еще должны догнать выступаемый переход от *.jsf к *.xhtml. Отказ Согласно JSF 2.3, FacesServlet по умолчанию будет авторегизироваться на *.xhtml тоже (рядом с /faces/*, *.faces а также *.jsf). Это откроется в Моярру 2.2.11.

Смотрите также:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top