jsf - 如何更改默认 p :dataTable emptyMessage message

标签 jsf internationalization primefaces datatable message

我正在使用 PrimeFaces 的数据表。我收到“未找到记录”。当表没有元素时。我想将此消息更改为“无结果”之类的内容,并将此消息设为 i18n 类型。

我不想使用

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

每个表。

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

最佳答案

来自 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;
}

关于jsf - 如何更改默认 p :dataTable emptyMessage message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14855952/

相关文章:

ajax - JSF ajax 命令按钮不更新 primefaces 选择列表

internationalization - 使用 gettext 代替 QObject.tr() 进行 PyQt4 应用程序本地化的优缺点?

forms - dataList 中有多个 remoteCommand,但只有一个调用

jsf - 如何从 p :fileUpload as BLOB in MySQL? 插入上传的图像

performance - JSF 性能改进

java - JSF 表单不执行操作,因为组合框

java - "isUserInRole"方法与JAAS相关吗?

localization - 我应该在ColdFusion网站上使用哪种计算机辅助翻译格式?

jquery - Datepicker总是显示简体中文?

java - 如何从 JSF 2.2 中提取 url 路径和查询参数?