Pregunta

intento sido aprender JSF, ya veces veo la URL es *.jsf y, a veces es *.xhtml o /faces/*. Alguien puede llenar mis conocimientos, por favor? Cuando creo un JSF usando Facelet, la extensión del archivo es .xhtml, así que ¿de dónde viene la extensión URL de .jsf?

¿Fue útil?

Solución

La extensión .jsf es donde el FacesServlet es durante el período de JSF 1.2 a menudo asignada en en el web.xml.

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

La extensión es .xhtml de la real archivo Facelets como usted ha colocado físicamente en el contenido de la web de la aplicación web, por ejemplo, Webapp/WebContent/page.xhtml.

Si se invoca esta página con la extensión .jsf, por ejemplo, http://localhost:8080/webapp/page.jsf entonces el FacesServlet será invocado, localizar el archivo de análisis page.xhtml y / render sus componentes JSF. Si el FacesServlet no se invoca, a continuación, el usuario final podría terminar encima de conseguir el código fuente XHTML prima (que puede ser visto por el botón derecho del ratón, Ver código ).

se ha utilizado a veces una extensión *.faces o foldermapping /faces/*. Pero esto era de nuevo en las edades JSF 1.0 / 1.1. Usted es libre de elegir y utilizar cualquier asignación desea dejar FacesServlet escuchar, incluso si se trata de un *.xyz nada, diciendo. La página en sí debe tener siempre la extensión .xhtml, pero esto es configurable por el siguiente <context-param> en web.xml:

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xml</param-value>
</context-param>

Esto cambiará el FacesServlet para localizar instad page.xml de page.xhtml (por defecto).

Más recientemente, con JSF / Facelets 2.0 se ha utilizado un mapeo *.xhtml. En JSF / Facelets 1.x no fue posible usar la misma extensión que el archivo de mapeo físico. Que daría lugar a un bucle infinito. Pero desde JSF / Facelets 2.0 es posible y esto le permite llamar a la página por http://localhost:8080/webapp/page.xhtml.

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

De esta manera no es necesario configurar algunas restricciones de seguridad para ocultar los archivos de origen primas de distancia para los casos cada vez que el usuario final cambia, por ejemplo, en .jsf URL para .xhtml en la barra de direcciones del navegador. Sólo los útiles (IDE) y plugins y recursos de aprendizaje todavía tienen que ponerse al día el movimiento defendido desde *.jsf a *.xhtml. De acuerdo con JSF 2.3, el FacesServlet se emitirá por defecto autoregistered en *.xhtml también (junto a /faces/*, *.faces y *.jsf). Esto es portado a Mojarra 2.2.11.

Ver también:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top