jsf-2 - plantillas - ui define jsf
Cuándo usar f: ver y f: subvista (1)
<f: ver>
El <f:view>
solo es útil si desea especificar / anular explícitamente cualquiera de los atributos disponibles, como la locale
, la encoding
, contentType
, etc. o si desea adjuntar algunos oyentes de fase. P.ej
<f:view locale="#{user.locale}" encoding="UTF-8" contentType="text/html">
Si no lo especifica, entonces se usarán los valores predeterminados de JSF en su lugar, que son respectivamente UIViewRoot#getLocale()
, UTF-8
y la coincidencia más cercana del encabezado de solicitud de Accept
. Debe tenerse en cuenta que la coincidencia más cercana del encabezado de solicitud de Accept
no siempre es del todo correcta. A veces resulta en application/xhtml+xml
debido a la presencia de la extensión .xhtml
en la URL en el caso de Facelets y el .xhtml
no está configurado para interpretarlo como text/html
de forma predeterminada (como MSIE). Realmente desea evitar este tipo de contenido incorrecto al establecerlo explícitamente en text/html
.
Tenga en cuenta que no importa dónde lo coloque en la plantilla. Incluso puede ponerlo en el cliente de plantilla como hijo inmediato de <ui:define>
. Sin embargo, el lugar canónico es el hijo inmediato de <html>
y, por lo tanto, ajusta tanto a <h:head>
como a <h:body>
. Esta es también la forma en que se hace en JSP heredado donde realmente se requiere . En Facelets es opcional y se contabiliza como metadatos.
Ver también:
- Nuestra página wiki XHTML
- ¿Es posible usar JSF + Facelets con HTML 4/5?
- JSF 2.0 no representa ninguna página
<f: subvista>
La <f:subview>
creará otro contexto de contenedor de nombres. Esto es particularmente útil cuando desea reutilizar un archivo de inclusión que, a su vez, contiene identificadores de componentes fijos más de una vez en la misma raíz de vista, de lo contrario, obtendrá errores duplicados de identificación de componentes. Sin embargo, dado que JSF 2.0 tal archivo de inclusión puede ser mejor un componente compuesto que ya es un contenedor de nombres.
Si no lo especifica, no dañará si no reutiliza un componente con la misma ID físicamente varias veces en la vista.
Ver también:
No estoy seguro de cuáles son los beneficios de usar <f:view>
y <f:subview>
. Noté que uno podía escribir páginas JSF sin usarlas.
¿Cuáles son los beneficios de usar esas etiquetas?