Foros del Web » Programación para mayores de 30 ;) » Java »

Struts 2: Refresco en validación.

Estas en el tema de Struts 2: Refresco en validación. en el foro de Java en Foros del Web. ¡Hola!. Vereis, estoy utilizando el marco de trabajo que proporciona Struts 2 para las validaciones en formularios. Lo que me ocurre es que la validación ...
  #1 (permalink)  
Antiguo 29/03/2010, 07:37
 
Fecha de Ingreso: marzo-2006
Mensajes: 106
Antigüedad: 16 años, 9 meses
Puntos: 0
Struts 2: Refresco en validación.

¡Hola!.

Vereis, estoy utilizando el marco de trabajo que proporciona Struts 2 para las validaciones en formularios.

Lo que me ocurre es que la validación funciona perfectamente cuando la defino en el fichero MyAction-validation.xml. Pero al solucionar los problemas de validación y volver a hacer "Submit", me redirige siempre a la salida de errores de validación. Me he dado cuenta de que ocurre porque no me limpia los errores anteriores, y siempre detecta que existen errores. ¿Sabeis como se limpian los errores previos al iniciar cada validación?.

He probado a hacerlo en el método "validate()", pero al parecer este método se ejecuta después que el fichero xml, y limpia todos los errores acumulados sobre la validación actual, así que esa técnica no sirve.

¿Sabeis como solucionarlo?.

Un saludo.
__________________
"El río más profundo siempre es el más silencioso"
  #2 (permalink)  
Antiguo 30/03/2010, 08:09
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 14 años, 3 meses
Puntos: 188
Respuesta: Struts 2: Refresco en validación.

¿Esos errores pasan a través de un action antes de pasar por el validation.xml? De ser así, igual tienes que evitar recoger los errores que te provengan de la jsp al hacer de nuevo el submit.
  #3 (permalink)  
Antiguo 03/04/2010, 07:28
 
Fecha de Ingreso: marzo-2006
Mensajes: 106
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Struts 2: Refresco en validación.

En el jsp no tengo ninguna etiqueta <s:actionerror/> definida, pues Struts 2 se encarga de colocar los errores de validación justo arriba de cada campo validado.

La validación se activa en el Action. Tengo definido un MiAction-validation.xml, y los elementos a validar están puestos como "visitor". Realmente no estoy tocando nada de la validación, únicamente estoy configurando los *-validation.xml.

Pero aún así, los errores de validación se siguen manteniendo en el Action, y no veo forma de limpiarlos al hacer cada submit, sin tener que forzarlo mucho (es decir, sin tener que añadir demasiado código extra).

Lo único que se me ocurre es intentar cambiar el orden en el que son llamados los interceptores, y hacer el clear() en el método "validate" (como estarían los interceptores cambiados, no habría problema al limpiar los errores "al principio" de la validación).

¡Muchas gracias por responder!.
__________________
"El río más profundo siempre es el más silencioso"
  #4 (permalink)  
Antiguo 18/05/2010, 13:14
 
Fecha de Ingreso: mayo-2010
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Struts 2: Refresco en validación.

estoy usando el framework . y en este momento estoy analizando las validaciones de mi pantalla sobreescribiendo el metodo validate().
Quiza esa puede ser una solucion mas prolija que usar validators y ademas escribir xml.( mi opinion particular).

arrojo una pregunta por si alguno la sabe. : dentro de un metodo validate() como puedo distinguir , en caso de tener varios <s:submit.../> , cual es el boton que disparo el evento??


saludos
  #5 (permalink)  
Antiguo 19/05/2010, 07:51
 
Fecha de Ingreso: marzo-2006
Mensajes: 106
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Struts 2: Refresco en validación.

Antes usábamos esa forma de validar, pero queremos ir migrando a las validaciones de Struts 2 mediante anotaciones. Además, muchas de las validaciones son recurrentes, y pensamos que nos puede ahorrar mucho código automatizar ciertas validaciones.

Además, permite definir la validación a nivel de entidad, sin necesidad de colocarlo en el código del Action.

En cuanto a tu pregunta... puedes utilizar alguna variable interna que describa la "ruta" que has ido siguiendo entre actions. O si lo que te interesa directamente es no validar un determinado submit, basta con no poner el interceptor de validación a ese action. De todas formas, creo que los <s:submits> también tienen un atributo "name", como el resto de etiquetas, donde se guarda el valor ("value") en la variable indicada en el "name".

¡Un saludo!.
__________________
"El río más profundo siempre es el más silencioso"

Etiquetas: refresco, struts, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:13.