gpt4 book ai didi

jsf - Primefaces 数据表,过滤本地化枚举值

转载 作者:行者123 更新时间:2023-12-05 06:41:13 24 4
gpt4 key购买 nike

我有一个 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="" 吗?具有更好的值(value),或者制作PF().filter()处理客户端数据?

最佳答案

使用这段代码,您可以从页面 xhtml 管理所有内容,而无需触及您的 java bean:

<p:importEnum type="it.example.PrintRequestFormat" var="PrintRequestFormat" allSuffix="ALL_ENUM_VALUES" />
<p:column visible="true" filterBy="#{req.format.name()}" sortBy="#{req.format}" headerText="#{msg['pressroom_list.format']}" filterMatchMode="in">
<f:facet name="filter">
<p:selectCheckboxMenu label="#{msg['pressroom_list.format']}" onchange="PF('requestsTable').filter()" panelStyle="width:125px" scrollHeight="150">
<f:selectItems value="#{PrintRequestFormat.ALL_ENUM_VALUES}" var="format" itemValue="#{req.format.name()}" itemLabel="#{msg['printrequest.format.'.concat(format)]}"/>
</p:selectCheckboxMenu>
</f:facet>
<h:outputText value="#{msg['printrequest.format.'.concat(req.format)]}" />
</p:column>

关于jsf - Primefaces 数据表,过滤本地化枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41139003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com