p:selectedManyManu是否允许默认选择?我一直无法实现这一点。我甚至尝试过Omnifaces ListConverter和selectItemsConverter而没有成功。任何帮助或指针都表示赞赏。页面加载时,默认情况下可以选择多个项目。这是我的代码:
POJO:
public class LocationRef implements Serializable{
private integer Seqid;
private String locname;
private String locaddress;
private String phonenumber;
//getters and setters
//tostring
//equals, hashcode
}
后端bean:
public class SelectionBean implements Serializable {
private List<LocationRef> selectedLocations;
private List<LocationRef> allLocations;
@PostConstruct
public void init() {
selectedLocations = new ArrayList<LocationRef>();
allLocations = new ArrayList<LocationRef>();
selectedLocation = dao.getSelectedLocation(idList);
allLocation = dao.getAllLocations();
}
public List<LocationRef> getSelectedLocations() {
return selectedLocations;
}
public List<LocationRef> getAllLocations() {
return allLocations;
}
public void setAllLocations(List<LocationRef> allLocations) {
this.allLocations = allLocations;
}
}
XHTML:
<p:selectManyMenu id="location" value="#{SelectionBean.selectedLocations}"
converter="omnifaces.SelectItemsConverter"
showCheckbox="true" style="width: 220px"
>
<f:selectItems value="#{SelectionBean.allLocations}" var="loc"
itemValue="#{loc.locationSeqid}"
itemLabel="#{loc.sitename}"/>
</p:selectManyMenu>
答案 0 :(得分:2)
您的<f:selectItems itemValue>
不对。它应该表示您想要在<p:selectManyMenu value>
后面的集合中进行单独设置的相同值。
这应该这样做:
itemValue="#{loc}"
omnifaces.SelectItemsConverter
是用于此目的的正确转换器。 omnifaces.ListConverter
仅适用于那些不使用<f:selectItem(s)>
作为孩子的组件,而是“普通”List
作为自己的属性,例如<p:autoComplete>
和{{1 }}