条件演算子は、「レンダリングされた」「値」などの多くの属性で機能します。
しかし、それは実際には機能しませんか?それとも私はそれを間違っていますか?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
エラー:javax.el.ELException:有効なメソッド式ではありません
(primefaces ajaxアクション属性を使用して実現しました)
条件演算子は、「レンダリングされた」「値」などの多くの属性で機能します。
しかし、それは実際には機能しませんか?それとも私はそれを間違っていますか?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
エラー:javax.el.ELException:有効なメソッド式ではありません
(primefaces ajaxアクション属性を使用して実現しました)
これはサポートされていません。action
属性はであるはずですが、MethodExpression
条件演算子はそれをValueExpression
構文にします。MethodExpression
ELの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}" />