jsf internationalization primefaces datatable messages

jsf - Cómo cambiar el mensaje p: dataTable emptyMessage



internationalization primefaces (2)

Estoy usando la tabla de datos de PrimeFaces. Me sale "No se encontraron registros". Cuando la tabla no tiene elemento. Quiero cambiar este mensaje a algo así como "Sin resultado" y hacer que este mensaje escriba i18n.

No quiero usar

<p:dataTable id="idTable" ... emptyMessage="#{messages[''general.message.EmptyList'']}" >

para cada mesa

¿Cómo puedo cambiar el mensaje de mensaje emptyMessage p: dataTable predeterminado?


Desde el código fuente de PrimeFaces 3.5 DataTable :

210 public java.lang.String getEmptyMessage() { 211 return (java.lang.String) getStateHelper().eval(PropertyKeys.emptyMessage, "No records found."); 212 }

Por lo tanto, está codificado y no hay manera de cambiarlo en un solo lugar que no sea hackear la fuente de PrimeFaces o crear un archivo de etiquetas (¡no compuesto!) <my:dataTable> que envuelve la <p:dataTable> con el conjunto de mensajes deseado .

<ui:composition ...> <p:dataTable id="#{id}" value="#{value}" var="item" emptyMessage="#{messages[''general.message.EmptyList'']}"> <ui:insert /> </p:dataTable> </ui:composition>

<my:dataTable id="foo" value="#{bean.items}"> <p:column>#{item.foo}</p:column> <p:column>#{item.bar}</p:column> </my:dataTable>

Si realmente no quieres cambiar el mensaje, pero simplemente quieres ocultarlo por completo, entonces también puedes optar por una solución CSS pura:

.ui-datatable-empty-message { display: none; }


escribe emptyMessage = "" dentro de la Ej. de datos:

<p:dataTable var="hola" value="#{logica.hola}" emptyMessage="text you want to appear" > </p:dataTable>