2017-02-14 23 views

回答

2

表達value="#{!bean.isCreateGroup}"是無效的,因爲這裏的SelectBooleanCheckBox值屬性必須是一個javax.el.ValueExpression既能獲取和設置一個值(L值表達)。

從ValueExpression的鏈接的Javadoc:

並非所有的r值的表達式可以用作1-值表達式(如 「$ {1 + 1}」 或「$ {的firstName} $ {lastName的}「)

而且從表達式語言規範2.1:

用於左值的有效語法是用於一個rvalue有效語法的子集。特別是,在一個對象上,一個左值只能由一個變量(例如$ {name})或一個屬性分辨率組成,通過。或[]運營商(例如 $ {employee.name})。

爲了使它晶瑩剔透,表達式應該代表一個bean屬性:

<p:selectBooleanCheckbox value="#{bean.aBooleanProperty}" ... />  

在你的情況下,最簡單的解決方案是使用另一個布爾變量在Bean具有相反的值,例如類似Boolean notCreateGroup(順便說一句,爲什麼checkBoxCreateSecurityGrpKey引用的組件的值應該與名爲createGroup的變量相反?)。

硒也:

Using conditional operator in h:inputText value and h:commandButton actionListener

相關問題