selectBooleanCheckBox в пользовательском интерфейсе: repeat не вызывает слушателя - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь заполнить значения selectBooleanCheckbox, используя ui: повторить, так как значения взяты из списка.Значения флажка назначаются нормально, но слушатель не вызывается, когда я изменяю значение selectBooleanCheckbox.Я также получил эту ошибку при изменении значения

Недопустимый синтаксис для операции множеств: javax.el.PropertyNotWritableException: Недопустимый синтаксис для операции множеств

Вот мой код

 <ui:repeat value="#{myBean.myObjects}" var="object">                                                           
    <p:selectBooleanCheckbox 
       value="#{myBean.isObjectSelected(object)}">                                                      
          <p:ajax update="growl"                                                            
             listener="#{myBean.doSomethingtoObject(object)}" />                                                        
    </p:selectBooleanCheckbox>                                                  
    <h:outputText value="#{object.name}" />
</ui:repeat>

Проблема исходит от value="#{myBean.isObjectSelected(object)}" части.Когда я удалил эту часть, ошибка исчезла, и слушатель вызывается нормально.Но как еще я могу получить значение флажка без него?Даже если я сразу назначу значение #{true}, слушатель не будет вызван.Я обнаружил похожие проблемы, но не со слушателями ajax.

1 Ответ

0 голосов
/ 13 июня 2019

Очевидно, что selectBooleanCheckBox должен иметь предопределенное значение и не может быть заполнен вызовом метода.Решил это, используя карту и сохранив значение TRUE или FALSE внутри.

<ui:repeat value="#{myBean.myObjects}" var="object">                                                           
    <p:selectBooleanCheckbox 
       value="#{myBean.objectMap[object]}">                                                      
          <p:ajax update="growl"                                                            
             listener="#{myBean.doSomethingtoObject(object)}" />                                                        
    </p:selectBooleanCheckbox>                                                  
    <h:outputText value="#{object.name}" />
</ui:repeat>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...