Primefaces p:booleanCheckBox将值保存到映射

Primefaces p:booleanCheckBox将值保存到映射,primefaces,Primefaces,我正在尝试将BooleanSelectBox的值保存到地图中 在我的bean中,我有一个映射(当然有getter+setter): 我的看法是: <ui:repeat var="document" value="#{group.documents.entrySet().toArray()}"> <ui:repeat var="right" value="#{group.rights.entrySet().toArray()}"> <p:s

我正在尝试将BooleanSelectBox的值保存到地图中

在我的bean中,我有一个映射(当然有getter+setter):

我的看法是:

<ui:repeat var="document" value="#{group.documents.entrySet().toArray()}"> 
    <ui:repeat var="right" value="#{group.rights.entrySet().toArray()}"> 
        <p:selectBooleanCheckbox value="
         #{GroupBean.selectedPermissions[#{right.value};#{document.value}]}" />
    </ui:repeat>
 </ui:repeat>

right和document都是树形图,字符串作为键,字符串作为值

我的问题是布尔复选框的值。我找不到将right和document的值与分号组合的方法。我总是有数字形式的感觉

根据这篇文章,使用地图作为值应该不是问题:


但是checkboxValue的正确语法是什么,以便在selectedPermissions映射中查找关联的键并设置其值?

发现了问题。您需要在视图中将字符串与concat链接,因此此选项有效:

<ui:repeat var="document" value="#{group.documents.entrySet().toArray()}"> 
    <ui:repeat var="right" value="#{group.rights.entrySet().toArray()}"> 
        <p:selectBooleanCheckbox value="
         #{GroupBean.selectedPermissions[(right.value).concat(';').concat(document.value)]}" />
    </ui:repeat>
 </ui:repeat>

<ui:repeat var="document" value="#{group.documents.entrySet().toArray()}"> 
    <ui:repeat var="right" value="#{group.rights.entrySet().toArray()}"> 
        <p:selectBooleanCheckbox value="
         #{GroupBean.selectedPermissions[#{right.value};#{document.value}]}" />
    </ui:repeat>
 </ui:repeat>
<ui:repeat var="document" value="#{group.documents.entrySet().toArray()}"> 
    <ui:repeat var="right" value="#{group.rights.entrySet().toArray()}"> 
        <p:selectBooleanCheckbox value="
         #{GroupBean.selectedPermissions[(right.value).concat(';').concat(document.value)]}" />
    </ui:repeat>
 </ui:repeat>