我的問題是類似JPA persist many to many堅持多對多與SelectBooleanCheckbox
不過,我有兩個實體:角色和用戶,有一個多對多的關係,由rolesusers表表示。在我的應用程序中,我使用的是JSF 2.0,並且我有一個表單來處理用戶數據,以及一個包含所有角色名稱列表的表單和一個selectBooleanCheckbox以查看用戶的角色(如果是,請選中)。此外,它必須有可能添加或刪除rol(檢查或取消選中selectBooleanCheckbox),但是當我這樣做時,我有兩個問題:
1:要檢查此用戶具有的角色,我必須在selectBooleanCheckbox的值的語法如下:
<h:column>
<f:facet name="header">
<h:outputText value="ASIGNADO"/>
</f:facet>
<h:panelGroup rendered="#{usuariosController.selected.rolesList.contains(itemRole)}">
<h:selectBooleanCheckbox value="#{true}">
<f:ajax listener="#{rolesView.selectRoleListener(usuariosController.selected, itemRole)}" render="@form" />
</h:selectBooleanCheckbox>
</h:panelGroup>
<h:panelGroup rendered="#{!usuariosController.selected.rolesList.contains(itemRole)}">
<h:selectBooleanCheckbox value="#{false}">
<f:ajax listener="#{rolesView.selectRoleListener(usuariosController.selected, itemRole)}" render="@form" />
</h:selectBooleanCheckbox>
</h:panelGroup>
</h:column>
但在執行時selectRoleListener
,它拋出一個javax.faces.component.UpdateModelException /users.xhtml @224,102 value="#{true}": Illegal Syntax for Set Operation
。
2:如果我刪除value="#{true}"
與value="true"
取代它,不選中該複選框,當用戶在列表中指定的角色,但似乎執行selectRoleListener,但變化不是在數據庫中可見。
你能幫我解決這個問題嗎?我希望你能理解我。
謝謝!
這不是JSF中複選框的正確用法。首先,是否有一個特定的原因,你爲什麼使用''而不是僅僅是一個''? –
BalusC
不是。它只是用於操縱角色列表(用於角色表中的所有角色)。但我沒有想到它 –