validation - validate - ¿Cómo saltarse la validación cuando se hace clic en un botón específico?
validate email jsf (1)
En caso de que no esté usando ajax, o aún esté en JSF 1.x, y realmente necesite invocar una acción comercial en el método de cancel() (es decir, simplemente recargar la página no es suficiente), entonces su mejor opción es agregar de immediate="true" al botón. De esta forma, todos los campos de entrada que no tengan immediate="true" se omitirán en el procesamiento.
<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />
En JSF 2.x, mucho mejor es enviar el formulario por <f:ajax> , que de forma predeterminada solo procesa @this lugar de @form .
<h:commandButton value="Cancel" action="#{bean.cancel}">
<f:ajax />
</h:commandButton>
Si desea navegar a otra página aquí, agregue ?faces-redirect=true al resultado en el método cancel() .
O bien, si realmente no necesita invocar ninguna acción comercial, simplemente use <h:button> en donde especifica directamente el resultado (implícito) del caso de navegación.
<h:button value="Cancel" outcome="previouspage" />
Esto básicamente recargará la página mediante una solicitud GET. El <h:button> no existe en JSF 1.x, pero también puedes usar HTML + JS simple para eso.
Ver también:
Tengo un formulario con un validador en un campo. Tengo dos h:commandButton s: Ok y Cancelar. Cuando llevo datos incorrectos y hago clic en Cancelar obtengo un mensaje de validación. ¿Qué debo hacer para que el validador no se ejecute cuando hago clic en cancelar?