2012-05-06 14 views
20

Koşullu operatör "işlenen" "değer" ve diğerleri gibi birçok öznitelikte çalışır.EL koşulu operatörünü action niteliğinde kullanmak mümkün müdür?

Fakat bu işlem çalışmıyor mu? Yoksa yanlış mı yapıyorum?

<h:commandLink action="#{true ? bean.methodTrue() : bean.methodFalse()}"/> 

Hata: javax.el.ELException: Geçerli Bir Yöntem Anlatım

(I primefaces ajax eylem özelliğini kullanarak bunu fark) Bu desteklenmez

+1

Buna göre, [EL koşullu Yöntem, ifade] (http://stackoverflow.com/questions/5433876/el-conditional-method-expression) – Fallup

+0

sayesinde, bu alır umut mümkün değildir Gelecek güncelleştirmelerde çözüldü – djmj

cevap

44

. action özniteliğinin MethodExpression olması gerekiyordu, ancak koşullu işleci bunu ValueExpression sözdizimi yapar. Bunun EL'de MethodExpression s için destekleneceğini sanmıyorum.

  1. hangi delegeler işi tek bir eylem yöntemi oluşturun:

    Temelde 2 seçenek var.

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

    Gerekirse ile

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

    , #{bean.method(condition)} göre yöntem argüman olarak geçmektedir. Veya 2 düğmeyi koşullu olarak render.

    <h:commandButton ... action="#{bean.methodTrue}" rendered="#{bean.condition}" /> 
    <h:commandButton ... action="#{bean.methodFalse}" rendered="#{not bean.conditon}" /> 
    
+1

Her zamanki gibi iyi bir yanıt – hendrix

+0

Tercih edilir nedir? – alexander

+1

@Alex: modelinize en uygun olan yoldur. Ancak ikinci yol, koşulun, çekirdeğin kapsamına yerleştirilmesiyle elde edilmesi en iyisi olan talepte saklanması gereken ek bir zorunluluktur; diğer bir deyişle, http: // stackoverflow içinde # 5 olarak tanımlanan sorunla karşılaşırsınız. com/questions/2118656/commandlink-commandbutton-ajax destekli-bean-action-dinleyici-metodla-kullanılmamış – BalusC

İlgili konular