我正在尝试使用
Map<String,String>
我的
中的selectItems<p:selectCheckboxMenu>
,但不幸的是,它不起作用。
支持豆:
@Named(value = "roleBean")
@SessionScoped
public class RoleBean(){
private Map<String,String> roleMap;
private String[] selectRoles;
......
......
public void findRoleMap(){
if(roles.size()>0){
for(Role r:roles){
roleMap.put(r.getRoleId(),r.getRoleName());
}
logger.info("Role Map size: " + roleMap.size());
}
}
}
JSF AS:
<p:selectCheckboxMenu id="roles" value="#{roleBean.selectRoles}" label="Select your roles" filter="true" filterMatchMode="startsWith" height="200" panelStyle="width:200px">
<f:selectItems value="#{roleBean.roleMap.entrySet}" var="entry" itemLabel="#{entry.value}" itemValue="#{entry.key}"/>
</p:selectCheckboxMenu>
当我访问页面时,我发现在地图中添加了6个记录。但不幸的是,SelectCheckboxMenu下拉列表中没有任何内容。
如果我将UIComponent更改为
<p:selectOneMenu>
来自
<p:selectCheckboxMenu>
它在下拉列表中正确显示。
我试图通过Google找出答案,我没有找到其他任何尝试在SelectCheckboxMenu中使用MAP样式的键/值对。我很困惑。
我的问题是:SelectCheckBoxMenu是否支持密钥/值对映射样式,是否有。如何做?
请建议!
<f:selectItems value="#{bean.map.entrySet()}" var="entry"
itemLabel="#{entry.key}" itemValue="#{entry.value}" />