java - registros - primefaces showcase
¿Cómo se muestra un mensaje si una tabla de datos jsf está vacía? (2)
Puede probar esto de varias maneras, por ejemplo, teniendo una función en un bean que pruebe el tamaño de la lista:
function boolean isEmpty() {
return myList.isEmpty();
}
luego en las páginas JSF:
<h:outputText value="List is empty" rendered="#{myBean.empty}"/>
<h:datatable ... rendered="#{!myBean.empty}">
...
</h:datatable>
Usando JSF1.2, si mi enlace de tabla de datos no devuelve filas, quiero mostrar un mensaje que lo diga.
¿Cómo puedo hacer eso?
Y para obtener puntos adicionales, ¿cómo puedo ocultar la tabla completamente si está vacía?
Gracias.
Haz uso del atributo rendered
. Acepta una expresión booleana. Puede evaluar el valor de la tabla de datos dentro de la expresión con la ayuda de la palabra clave empty
de EL. Si devuelve false
, no se representará todo el componente (y sus elementos secundarios).
<h:outputText value="Table is empty!" rendered="#{empty bean.list}" />
<h:dataTable value="#{bean.list}" rendered="#{not empty bean.list}">
...
</h:dataTable>
Para el caso que le interesa, aquí hay otros ejemplos básicos de cómo hacer uso de las potencias EL dentro del atributo rendered
:
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue gt 10}" />
<h:someComponent rendered="#{bean.objectValue eq null}" />
<h:someComponent rendered="#{bean.stringValue ne ''someValue''}" />
<h:someComponent rendered="#{not empty bean.collectionValue}" />
<h:someComponent rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:someComponent rendered="#{bean.enumValue eq ''ONE'' or bean.enumValue eq ''TWO''}" />