¿Qué componente jsf puede representar una etiqueta div?

129

Por ejemplo: h:inputTextrepresentará a "input type='text'". ¿Qué etiqueta jsf puede representar una "div"etiqueta?

usuario101442
fuente
44
Tenga en cuenta que con Facelets y las versiones más recientes de JSF, puede mezclar etiquetas HTML estándar con sus etiquetas JSF.
Drew
Buen punto, pero desafortunadamente, estoy atascado con una versión muy antigua.
user101442

Respuestas:

234

Puede crear un DIVcomponente utilizando el <h:panelGroup/>. Por defecto, <h:panelGroup/>generará un SPAN en el código HTML.

Sin embargo, si especifica layout="block", entonces el componente estará DIVen el código HTML generado.

<h:panelGroup layout="block"/>
Romain Linsolas
fuente
9
No se procesa para mí a menos que agregue un estilo o clase de estilo al grupo de paneles, usando la implementación mojarra-1.2_15.
James McMahon
3
Anexo o establezca el atributo ID. Si no hago esto, solo aparece en el HTML sin las etiquetas DIV circundantes.
James McMahon
1
¿No deberíamos usar inmediatamente la divetiqueta? ¿Cuál puede ser el problema si hay alguno?
Rajat Gupta
44
@Marcos Por supuesto, puede usar la divetiqueta, pero en este caso, este componente no formará parte del árbol de componentes JSF (es decir, no está disponible en el código Java). Además de eso, no podrá actualizarlo directamente utilizando Ajax (excepto, por supuesto, si realiza la actualización directamente en parte de su código JavaScript).
Romain Linsolas
1
La respuesta es solo la mitad de la verdad. Vea aquí docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/… o aquí docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… . La información importante es que también necesitas uno styleo un styleClassatributo para divque suceda ... lo que hace que la historia sea absolutamente extraña en mi humilde opinión: un simple <h:panelGroup layout="block">generará un <span>? No tiene sentido para mi.
Kawu
18

En JSF 2.2 es posible usar elementos passthrough :

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:jsf="http://xmlns.jcp.org/jsf">
    ...
    <div jsf:id="id1" />
    ...
</html>

El requisito es tener al menos un atributo en el elemento utilizando el espacio de nombres jsf.

mp31415
fuente
14

Además del <h:panelGroup>componente (que me sorprende un poco), puede usar una <f:verbatim>etiqueta con el parámetro de escape configurado falsepara generar cualquier marcado que desee. Por ejemplo:

<f:verbatim escape="true">
    <div id="blah"></div>
</f:verbatim>

Tenga en cuenta que es un poco menos elegante que la panelGroupsolución, ya que debe generar esto para las etiquetas de inicio y fin si desea envolver cualquiera de sus códigos JSF con la divetiqueta.

Alternativamente, todos los marcos de interfaz de usuario principales tienen una divetiqueta de componente, o puede escribir la suya propia.

Nick Grubb
fuente
44
¿No deberíamos usar inmediatamente la etiqueta div? ¿Cuál puede ser el problema si hay alguno?
Rajat Gupta
-3

Creo que podemos usar la etiqueta literal, ya que en esta etiqueta usamos cualquiera de las etiquetas HTML

Sanket
fuente
¿Seriamente? ¿POR QUÉ? La etiqueta textual es algo relevante en la era jsp. En la era de las facetas (¿10 años ahora?) Es en su mayoría superfluo, ciertamente en este caso.
Kukeltje