如何更改默认p:dataTable emptyMessage消息

时间:2013-02-13 14:37:41

标签: jsf internationalization primefaces datatable messages

我正在使用PrimeFaces的dataTable。我得到“没有找到记录。”当table没有元素时我想将此消息更改为“无结果”,并将此消息设为i18n类型。

我不想使用

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

每张桌子。

如何更改p:dataTable默认emptyMessage消息?

2 个答案:

答案 0 :(得分:31)

来自PrimeFaces 3.5 DataTable源代码:

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

所以,它是硬编码的,没有办法在一个地方改变它,除了攻击PrimeFaces源或创建一个tagfile (not composite!) <my:dataTable>包裹所需的<p:dataTable>消息集。

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

如果您实际上不想更改消息,但只想完全隐藏,那么您还可以选择纯CSS解决方案:

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

答案 1 :(得分:1)

写emptyMessage =&#34;&#34;在数据表中 EJ:

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