事件更改时,JSF 2.0设置属性bean

vct*_*zac 1 richfaces java-ee jsf-2

当事件组件被触发时,我正在使用richfaces并在bean中尝试调用方法.我想直接调用"set"属性.

XHTML:

    h:selectBooleanCheckbox value="#{!mbean.myFlag}" immediate="true">
        <a4j:ajax event="click" immediate="true"></a4j:ajax>
    </h:selectBooleanCheckbox>
Run Code Online (Sandbox Code Playgroud)

的MBean:

@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;
}

...
Run Code Online (Sandbox Code Playgroud)

单击复选框时出现错误:

javax.faces.component.UpdateModelException: org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotWritableException: javax.el.PropertyNotWritableException: Illegal Syntax for Set Operation
Run Code Online (Sandbox Code Playgroud)

谢谢.

Bal*_*usC 8

value="#{!mbean.myFlag}"
Run Code Online (Sandbox Code Playgroud)

您不能将此EL语法用于"设置"操作.您应该删除感叹号!并反转模型本身中的值,以便您可以使用正确的EL语法:

value="#{mbean.notMyFlag}"
Run Code Online (Sandbox Code Playgroud)