1

イベントコンポーネントが起動されたときに、リッチフェイスを使用してBeanでメソッドを呼び出しようとしています。「set」属性を直接呼び出したい。

xhtml:

    h:selectBooleanCheckbox value="#{!mbean.myFlag}" immediate="true">
        <a4j:ajax event="click" immediate="true"></a4j:ajax>
    </h:selectBooleanCheckbox>

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

...

チェックボックスをクリックすると、エラーが発生します。

javax.faces.component.UpdateModelException: org.apache.myfaces.view.facelets.el.ContextAwarePropertyNotWritableException: javax.el.PropertyNotWritableException: Illegal Syntax for Set Operation

ありがとう。

4

2 に答える 2

8
value="#{!mbean.myFlag}"

この EL 構文を「設定」操作に使用することはできません。!適切な EL 構文を使用できるように、感嘆符を削除し、モデル自体の値を逆にする必要があります。

value="#{mbean.notMyFlag}"
于 2012-08-07T14:09:21.160 に答える
-1

ブール値のゲッターは、getMyFlag ではなく isMyFlag として宣言する必要があると思います。

于 2012-08-07T20:10:16.823 に答える