【发布时间】:2017-04-29 13:42:03
【问题描述】:
我有一个由域对象列表填充的p:datatable
每个域对象都有一个与 enum PrivateIndustry 相关联的值:P、K 或 N,对应于数据库值。
这些值随后通过本地化在p:dataTable 中呈现,labels_LOCALE.properties 使用com.package.PrivateIndustry.P/K/N 语法使它们易于阅读。
这对于可读性来说没问题,但是当我使用PF('dataTableId').filter() 过滤数据表时,我无法过滤本地化值,只能过滤纯枚举值(即 P、K 或 N)
即:
<p:column headerText="#{labels.header}"
filterBy="#{domainobject.privateIndustry}" filterStyle="display: none"
sortBy="#{domainobject.privateIndustry}" >
<h:outputText value="#{domainobject.privateIndustry}"/>
</p:column>
我可以通过使用ResourceBundle.getString("com.package.PrivateIndustry...") 将域对象中的名称填充为字符串来解决此问题,但这似乎相当不必要且令人费解。
我可以用更好的值解析filterBy="",还是让PF().filter() 处理客户端数据?
【问题讨论】:
-
您始终可以实现自定义过滤器...请参阅 PF 文档
标签: jsf primefaces filter datatable enums