JSF - Botón de limpiar formulario con error de validación

2,771 views
Skip to first unread message

Gwath

unread,
May 17, 2011, 6:11:46 AM5/17/11
to JavaSOS
Holas, tengo un problema que no sé como solucionar.

Tengo una aplicación en faces con un formulario con distintos campos
que se validan mediante conversores y validadores de faces. Tengo un
botón de limpiar el formulario que funciona bien. El problema es
cuando hay un error de validación si le doy a limpiar formulario no
funciona (debido al error de validación). Se puede arreglar?

el botón:

<ice:commandButton id="btnErase" type="submit" style="width: 50px;"
value="#{msg['consulta.btnerase.label']}"
action="#{consulta.init}"/>

Saludos.

Juan Manuel Lopez

unread,
May 17, 2011, 7:45:23 AM5/17/11
to jav...@googlegroups.com
No de buena manera, lo puedes limpiar con javascript a lo sumo. pero
no con jsf por que lo primero que se ejecuta es el validador (Ciclo de
vida de jsf http://micro-howto.blogspot.com/2010/01/ciclo-de-vida-en-jsf.html)
, luego el la acción de limpiar, lo que puedes hacer boton Erase, no
tome el validador, osea que lo ignore, se que en richfaces, había una
manera para que no validar siertos campos al hacer submit, pero en
ice: no sabria como hacerlo encontré esto


<ice:commandButton value="..." disableButtonOnFailedValidation="true" />

http://www.icefaces.org/JForum/posts/list/692.page

Saludos

> --
> www.JavaSOS.com
> Grupo de colaboración Java/J2ee para desarrolladores de habla hispana.

Gwath

unread,
May 17, 2011, 8:55:30 AM5/17/11
to JavaSOS
Ok gracias.
Googleando en profundidad he encontrado una solución que me ha
servido:

En el action aparte de limpiar los campos del formulario he hecho:

public void refresh() {
init(); //limpiar el form
FacesContext context = FacesContext.getCurrentInstance();
Application application = context.getApplication();
ViewHandler viewHandler = application.getViewHandler();
UIViewRoot viewRoot = viewHandler.createView(context,
context.getViewRoot().getViewId());
context.setViewRoot(viewRoot);
context.renderResponse();
}


Saludos.


On 17 Maig, 13:45, Juan Manuel Lopez <juan.lopez...@gmail.com> wrote:
> No de buena manera, lo puedes limpiar con javascript a lo sumo. pero
> no con jsf por que lo primero que se ejecuta es el validador (Ciclo de
> vida de jsfhttp://micro-howto.blogspot.com/2010/01/ciclo-de-vida-en-jsf.html)
> , luego el la acción de limpiar, lo que puedes hacer  boton Erase, no
> tome el validador, osea que lo ignore, se que en richfaces, había una
> manera para que no validar siertos campos al hacer submit, pero en
> ice: no sabria como hacerlo encontré esto
>
> <ice:commandButton value="..." disableButtonOnFailedValidation="true" />
>
> http://www.icefaces.org/JForum/posts/list/692.page
>
> Saludos
>

Pablo Codeiro

unread,
May 17, 2011, 11:15:07 AM5/17/11
to jav...@googlegroups.com
Emmm... no es mas facil hacer un:

<input type="reset" value="Borrar">

Simon Alberto Rodriguez Pacheco

unread,
May 17, 2011, 1:45:40 PM5/17/11
to jav...@googlegroups.com
coloca iimediate=true y listo
Ing en Computacion Simon Rodriguez
www.ecologicalpaper.com
tlf:0584142711347 Venezuela
Reply all
Reply to author
Forward
0 new messages