etiquetas - jsf outputtext
¿Se sugiere usar h: outputText para todo? (3)
El ejemplo que cita está escrito en XHTML, que es XML. Es posible que no se permita un "Transporte" independiente en la posición en la que desea colocarlo, por lo que debe "transformarlo" en xml válido.
Esto es lo que se llama facelets y el valor predeterminado en JSF2, mientras que en JSF1, el código de presentación se podía hacer con etiquetas JSP como predeterminadas y facelets era una alternativa que muchos desarrolladores estaban usando.
Soy nuevo en JSF (empecé a conocerlo hace 4 días) y estoy un poco confundido sobre el uso de h: outputText. Sé que es una etiqueta simple, pero en la mayoría de los ejemplos que he visto, se usa para generar texto muy simple (sin necesidad de escaparse), sin i18n. Por ejemplo (tomado de here )
<h:outputText value="Transport" />
que podría ser reemplazado por
Transport
Entonces, me pregunto si me estoy perdiendo algo o si la mayoría de los ejemplos que he visto son demasiado complicados hasta el punto de la locura.
Si está utilizando JSF 2.x con Facelets 2.x en lugar de JSP, ambos son igualmente válidos. Aún más, Facelets envuelve implícitamente el contenido en línea en un componente representado por <h:outputText>
(en otras palabras, se <h:outputText>
).
Solo cuando quiera inhabilitar el escape usando escape="false"
, o le gustaría asignar id
, style
, onclick
, etc. programáticamente, o le gustaría usar un convertidor (ya sea explícito a través de un converter
o implícito a través de forClass
), entonces Necesito <h:outputText>
.
Yo mismo no uso <h:outputText>
cuando no es necesario. Sin él, el código fuente se vuelve mejor legible. Puede simplemente alinear EL en texto de plantilla como #{bean.text}
lugar de hacer <h:outputText value="#{bean.text}">
. Antes de JSF 2.0, en JSP y Facelets 1.x, esto no era posible y, por lo tanto, <h:outputText>
es obligatorio. Si su IDE da advertencias al respecto, lo más probable es que JSF 1.x esté configurado / pensado.
h: la etiqueta outputText es necesaria solo si está procesando el texto en función de alguna condición de renderizado. eg: <h: outputText value = "Transport" rendered = "# {myBean.displayText}" />. Si es una declaración de salida simple, entonces no hay necesidad de usar la etiqueta; puedes usar: Transporte