2012-08-31 15 views
7

Sono curioso che cosa è la differenza tra questi due modi di esecuzione chiamate ajax:JSF F: ascoltatore ajax vs azione commandButton

<h:commandButton value="Submit" action="#{bean.action}"> 
    <f:ajax execute="@form" render="component"/> 
</h:commandButton> 

e

<h:commandButton value="Submit"> 
    <f:ajax listener="#{bean.action}" execute="@form" render="component"/> 
</h:commandButton> 

Sembra che la gente usa il primo molto più spesso, ma il secondo sembra funzionare altrettanto bene ...

risposta

13

Il primo modo consente la navigazione restituendo un risultato String e il secondo no. Il secondo modo non invocherà nulla se il client ha disabilitato JS, mentre il primo è gracefully degrades. In effetti, il primo modo è usato più spesso.

Il secondo modo è l'unico modo in componenti che non ha un attributo action, ad esempio <h:selectOneMenu> e così via.

Problemi correlati