Control de Errores con Struts

onuaj
07 de Febrero del 2005
Hola. Estoy realizando una aplicacion con Struts y tengo el siguiente problema. En el actionForm asociado al formulario utilizo el metodo validate para comprobar los campos de entrada, si no son validos hago un

errors.add("nombre", new ActionError("error.nombre"));

Y aqui viene el problema, cuando hago esto al devolverme a la pagina que genero el error me sale el mensaje

Error: 500
Localizacion: /WebStruts/aceptarUsuario.do
Cannot get request dispatcher for path JspStruts1.jsp


Sin embargo si hago esa misma comprobacion de los campos de entrada con un simple 'if' en el perfom de la clase Action:

if (username.length()<5){
errors = new ActionErrors();
errors.add("nombre",new ActionError("error.nombre"));
saveErrors(request,errors);
return (mapping.findForward("fallo"));
}

funciona sin ningun problema, devolviendome a la pagina que yo le indico y mostrandome el mensaje que yo indico en el ApplicationResources. Pq no funciona en el ActionForm ??, deberia ser ahi donde funcionase no?
Me falta algo?. Por favor una ayudita

hernan
07 de Febrero del 2005
No se si lo has hecho, pero debes hacer un:

ActionErrors errors = new ActionErrors();

En el ActionForm al igual que lo hiciste con el Action. Yo estube probande y me salen los mensajes de forma correcta, y eso que hago doble validacion: en el ActionForm valido que los campos no sean nulos y en el Action que tengan datos validos. Estoy usando tomcat 4.1.31 y struts 1.2 bajo eclipse en winXP y win98. Otra cosa, en el Action no deberias usar el ActioErrors sino un ActionMessages, ya que el metodo salveErrors con el ActionErrors esta deprecated, solo cambia el constructor y tipo de errors, el resto queda igual :P

Espero que te sirva de algo lo que te contesto, pero la verdad no entiendo como te fallo.

Saludos ;)

flapyTeam
07 de Febrero del 2005
Haber si va a ser por el strutsconfig.xml que no le has puesto el validate ni asignado un formulario.