2016-04-06 18 views
0

BooleanSelectBoxes'in değerlerini bir haritaya kaydetmeye çalışıyorum. Benim fasulye isep: booleanCheckBox Haritaya değeri kaydet

I (kesin alıcı + belirleyici ile) Bu haritayı ettik: Ben varsayılan olarak benim fasulye haritayı doldurmak

private Map<String, Boolean> selectedPermissions; 

, o zaman şuna benzer:

{0;0=false, 0;1=false, 0;2=false, 1;0=false, 1;1=false, 1;2=false} 

Benim görünümü:

<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> 

sağ ve belge değeri gibi başlıca ve string, string her iki Treemaps bulunmaktadır.

Benim sorunum booleanCheckBox değeridir. Sağ ve belgenin değerini bir noktalı virgülle birleştirmenin bir yolunu bulamıyorum. Her zaman bir NumberFormatException alırım.

değeri olarak, bir haritanın Bu yayına göre sorun olmamalı kullanma: How to map the value of a h:selectBooleanCheckbox in a h:dataTable within a h:dataTable?

Ama ne checkboxValue doğru sözdizimi ilişkili anahtar bulup selectedPermissions haritasında onun değerini ayarlamak oluyor?

cevap

0

Sorun bulundu. Sen görünümünde concat dizelerle bağlamak gerekir, bu nedenle bu işleri:

<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>