条件演算子は、「レンダリングされた」「値」などの多くの属性で機能します。
しかし、それは実際には機能しませんか?それとも私はそれを間違っていますか?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
エラー:javax.el.ELException:有効なメソッド式ではありません
(primefaces ajaxアクション属性を使用してそれを実現しました)
これはサポートされていません。 action
属性はMethodExpression
であると想定されていますが、条件演算子はそれをValueExpression
構文にします。 ELのMethodExpression
sでこれがサポートされることはないと思います。
基本的に2つのオプションがあります。
ジョブを委任する単一のアクションメソッドを作成します。
_<h:commandButton ... action="#{bean.method}" />
_
と
_public String method() {
return condition ? methodTrue() : methodFalse();
}
_
必要に応じて、#{bean.method(condition)}
によってメソッド引数として渡します。
または、2つのボタンを条件付きでレンダリングします。
_<h:commandButton ... action="#{bean.methodTrue}" rendered="#{bean.condition}" />
<h:commandButton ... action="#{bean.methodFalse}" rendered="#{not bean.conditon}" />
_