默认情况下如何在Primefaces中按字母顺序对选择列表进行排序?

问题描述:

默认情况下,我需要按字母顺序对选择列表中的选择进行排序.

I need to sort my choices in picklist alphabetically by default.

如何在我的JSF中完成?

How can it be done in my JSF?

Primefaces Picklist组件没有"order"属性,因此您无法在View(您的jsf页面)中完成此操作.

Primefaces Picklist component does not have an "order" attribute, so you can't accomplish this in View (your jsf page).

但是,您可以在托管bean端对列表进行排序.这来自展示柜

However you can sort your list on managed bean side. This is from the showcase

<p:pickList id="pickList" value="#{pickListBean.cities}" var="city" itemLabel="#{city}" itemValue="#{city}" />  

以下是来自Bean

List<String> citiesSource = new ArrayList<String>();  
List<String> citiesTarget = new ArrayList<String>();  

citiesSource.add("Istanbul");  
citiesSource.add("Ankara");  
citiesSource.add("Izmir");  
citiesSource.add("Antalya");  
citiesSource.add("Bursa");  

cities = new DualListModel<String>(citiesSource, citiesTarget);  

如果在初始化DualListModel之前对源"进行排序,则可以在选择列表组件上看到排序后的列表

If you sort your "source" before initializing DualListModel, you can see a sorted list on your picklist component

List<String> sortedCities = Collections.sort(citiesSource);
cities = new DualListModel<String>(sortedCities , citiesTarget);