Is it possible to use EL conditional operator in action attribute?

后端 未结 1 656
慢半拍i
慢半拍i 2020-12-15 17:14

The conditional operator works in many attributes like \"rendered\" \"value\" and others.

But it does not work in action? Or am I doing it wrong?

<         


        
相关标签:
1条回答
  • 2020-12-15 17:47

    This is not supported. The action attribute is supposed to be a MethodExpression, but the conditional operator makes it a ValueExpression syntax. I don't think this will ever be supported for MethodExpressions in EL.

    You have basically 2 options:

    1. Create a single action method which delegates the job.

      <h:commandButton ... action="#{bean.method}" />
      

      with

      public String method() {
          return condition ? methodTrue() : methodFalse();
      }
      

      If necessary, pass it in as method argument by #{bean.method(condition)}.

    2. Or, conditionally render 2 buttons.

      <h:commandButton ... action="#{bean.methodTrue}" rendered="#{bean.condition}" />
      <h:commandButton ... action="#{bean.methodFalse}" rendered="#{not bean.conditon}" />
      
    0 讨论(0)
提交回复
热议问题