2012-05-28 18 views
9

Estoy usando JSF2, Richfaces4 y Spring. Tengo un enlace de comando. Al ejecutarlo, guardo los registros y, al finalizar, ejecuto la búsqueda para mostrar registros como el siguiente código. El problema es que fireSearch() en oncomplete se ejecuta incluso si hay un error de validación en el formulario. Necesito ejecutar fireSearch() solo cuando el registro se guarda con éxito.¿Cómo ejecutar a4j: commandLink oncomplete solo cuando la validación ha tenido éxito?

¿Cómo puedo completar solo cuando la validación ha tenido éxito?

<a4j:commandLink styleClass="button" action="#{myBean.save}" render="detail_form" execute="@form" oncomplete="fireSearch()"> 
<span> Save </span> 
</a4j:commandLink> 

Respuesta

17

RichFaces apoya la solicitud de evaluación EL basada en oncomplete atributo. Por lo tanto, debería poder imprimir FacesContext#isValidationFailed() como si fuera una condición JS.

Por ejemplo,

oncomplete="if (#{!facesContext.validationFailed}) fireSearch()" 

Si la validación ha fallado, esta última instancia se traducirá en

oncomplete="if (false) fireSearch()" 

y por tanto no será invocado la función.

+0

gracias voy a probar y lo marcaré –

Cuestiones relacionadas