c: paraCada dentro de las caras (por ejemplo, p: panelgrid) dentro de ui: repetir

Tengo que producir dinámicamente una lista de tablas. Cada uno de estos tiene un número variable de columnas (con filas fijas).

Para realizar esto, primero puse un

dentro de un : así que

correctamente una lista de tablas.

Luego, para producir dinámicamente las columnas, intenté poner tanto un como un dentro de

. En el resultado, no obtengo ninguna fila.

Escribí un ejemplo mínimo aquí. En la testBackingBean , he definido (e inicializado) las ArrayList<ArrayList> tables la variable. Este es el xhtml que no produce los resultados esperados:

  

header of #{table}

#{row}

Cabe destacar que la línea de encabezado convierte correctamente #{table} en cadena. El problema es que no veo filas de datos.

Además, si utilizo

lugar de

todo funciona según lo previsto.

Además, probé diferentes permutaciones de y sin éxito.

Entonces, ¿cómo puedo producir dinámicamente más tablas (usando caras principales) y establecer un número dynamic de columnas?

¡Gracias!

EDITAR: Me gustaría utilizar dos , pero incluso con uno solo obtengo un resultado vacío. De hecho, si pruebo el siguiente xhtml:

  current element: #{tabella}  

entonces obtengo un resultado vacío (Lo sé, esta es una pregunta diferente)

La transición del código fuente XHTML al resultado HTML generado es un proceso de dos pasos.

  1. En primer lugar, durante el tiempo de comstackción de la vista, el código fuente XHTML se analiza y se convierte en un árbol de instancias de UIComponent de Java que representa el árbol de componentes de la interfaz de usuario JSF, como está disponible en FacesContext#getViewRoot() .

  2. Luego, durante el tiempo de visualización de la vista, el árbol de componentes de la interfaz de usuario JSF produce una salida HTML y la escribe en el resopnse HTTP, comenzando con el UIViewRoot#encodeAll() .

Los manejadores de tags como todas las tags JSTL , varias tags JSF y solo unas pocas tags Facelets ejecutan durante el tiempo de comstackción de la vista. Los componentes de IU como todas las tags JSF , varias tags Facelets y solo unas pocas tags JSF ejecutan durante el tiempo de visualización de visualización.

El es un gestor de tags y el es un componente de UI .

En otras palabras, los componentes de UI que se declaran dentro de se crear varias veces en el árbol de componentes JSF en función de durante el tiempo de comstackción view, que a su vez producen cada uno su propia salida HTML durante la visualización hora. Los componentes de UI que se declaran dentro de se crean solo una vez en el árbol de componentes JSF durante el tiempo de comstackción de la vista, que a su vez se reutilizan varias veces en función de para producir resultados HTML durante el tiempo de visualización.

Su problema concreto está causado por el hecho de que solo está disponible durante el tiempo de visualización de visualización, no durante el tiempo de visualización de la vista. El básicamente recupera un #{null} como valor cuando está a punto de ejecutarse durante el tiempo de comstackción de la vista.

Puede resolver esto reemplazando el externo por . Aunque me pregunto si no podría usar mejor lugar.

Ver también:

  • JSTL en JSF2 Facelets … tiene sentido?