条件运算符的工作像“渲染”,“价值”和其他许多属性。
不过,这并不在行动工作? 还是我做错了?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
错误:javax.el.ELException:不是有效的方法表达式
(I意识到它使用primefaces AJAX action属性)
条件运算符的工作像“渲染”,“价值”和其他许多属性。
不过,这并不在行动工作? 还是我做错了?
<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/>
错误:javax.el.ELException:不是有效的方法表达式
(I意识到它使用primefaces AJAX action属性)
这是不支持的。 该action
属性应该是一个MethodExpression
,但条件运算符使其成为一个ValueExpression
语法。 我不认为这将以往任何时候都支持MethodExpression
S IN EL。
你已经基本上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}" />