gpt4 book ai didi

sorting - 如何对 f :selectItems in each p:selectOneMenu of my application? 进行排序

转载 作者:行者123 更新时间:2023-12-04 01:04:02 24 4
gpt4 key购买 nike

例如:

<p:selectOneMenu value="#{UserBean.country}" id="countryId">
<f:selectItem itemLabel="Japan" itemValue="Japan"/>
<f:selectItem itemLabel="Russia" itemValue="Russia"/>
<f:selectItem itemLabel="India" itemValue="India"/>
<p:ajax listener="#{UserBean.onChangeCountry}" process="@this"/>
</p:selectOneMenu>

像上面一样,我在其他 jsf 页面中有许多其他未排序形式的 selectOneMenu,我想要一个解决方案,其中在带有自定义标签的 selectOneMenu 标签周围将按排序顺序显示内容(或者也可以建议任何其他方式我们可以做到这一点)

最佳答案

您不需要自定义标签。

如果是 p:selectOneMenu你可以只使用 f:selectItems (复数)并返回一个排序的集合(替换您的个人 f:selectItem 标签)。在这种情况下,这将是这样的;

<f:selectItems value="#{view.countries}"/>

在哪里countries是 setter/getter ,getCountries() ,返回 Map<String, String> 的列表根据您的选择排序。

想象一下没有f:selectItems尽管如此,我们唯一可用的选择是f:selectItem (单数)-就像您的示例一样。那么解决方案就是使用 JSF 预呈现 Hook 并在呈现该部分之前对 JSF 组件进行排序。您可以在此处准确阅读其工作原理; Variable order of components (panels) in JSF page .在该示例中,p:panel 的列表组件在 h:panelGroup 中随机排列.不过,它可以很容易地应用于这种情况。

为了让它更透明并隐藏f:event标记到页面上的预渲染 Hook ,您可以更进一步并定义一个复合组件;

https://stackoverflow.com/tags/composite-component/info

这个复合组件可以只使用 selectOneMenu并介绍一个sort允许您调用排序预渲染 Hook 的属性,具体取决于 sort 的值是否为属性为真或假。

关于sorting - 如何对 f :selectItems in each p:selectOneMenu of my application? 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67093299/

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