我正在使用富脸,并在触发事件组件时尝试在 bean 中调用方法。我想直接调用"set"属性。
.xhtml:
h:selectBooleanCheckbox value="#{!mbean.myFlag}" immediate="true">
<a4j:ajax event="click" immediate="true"></a4j:ajax>
</h:selectBooleanCheckbox>
姆比恩:
@SuppressWarnings("serial")
@ManagedBean(name = "mbean")
@ViewScoped
public class MyMbean implements Serializable {
private Boolean myFlag;
...
/** @see #myFlag*/
public Boolean getMyFlag() {
return flagCartaEmitida;
}
/** @see #myFlag*/
public void setMyFlag(Boolean myFlag) {
this.myFlag= myFlag;
}
...
单击复选框时出现错误:
javax.faces.component.UpdateModelException: org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotWritableException: javax.el.PropertyNotWritableException: Illegal Syntax for Set Operation
谢谢。
value="#{!mbean.myFlag}"
不能将此 EL 语法用于"设置"操作。应删除感叹号!
并反转模型本身中的值,以便可以使用正确的 EL 语法:
value="#{mbean.notMyFlag}"
我认为布尔值的getter必须声明为isMyFlag,而不是getMyFlag。