2012-08-31 39 views
7

Tengo curiosidad ¿cuál es la diferencia entre estas dos formas de ejecutar las llamadas ajax:JSF F: Ajax vs oyente acción commandButton

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

y

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

Parece que la gente utiliza la primera forma más a menudo, pero el segundo parece funcionar bien también ...

Respuesta

13

La primera forma permite la navegación devolviendo un resultado String y la segunda no. La segunda forma no invocará nada si el cliente tiene JS deshabilitado, mientras que la primera es gracefully degrades. De hecho, la primera forma se usa con más frecuencia.

La segunda forma es la única forma en componentes que no tiene un atributo action, como <h:selectOneMenu>, etc.

Cuestiones relacionadas