¿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?


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"/>

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.


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.


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


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.