PrimeFaces 5.2 select复选框菜单不支持映射<字符串,字符串>样式选择项



我正在尝试使用

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}" />

最新更新