Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/05/2008, 16:23
Avatar de Lino-kun
Lino-kun
 
Fecha de Ingreso: mayo-2008
Ubicación: Cuernavaca Morelos Mexico
Mensajes: 126
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: ActionMessage y Struts

Hola espero poder ayudarte

Los ActionErrors y ActionMessages son instrucciones que a final de cuentas se toman como mensajes que pueden ser visualizados en las paginas JSP estos mensajes puede ser manipulados por el usuario o descritos en un archivo ApplicationResources.properties, este archivo no solo se ocupa para esto, pero esa es otra historia jeje

Ahora mira yo en mis actions hago algo como esto.
Código PHP:
ActionMessages messages = new ActionMessages();
   
fwd=errorMessage(mapping,fwd,messages,request,target,"exception",
                                         
"error.exception.exception1"); 
Donde errorMessage es una función que invente. fwd es una variable de tipo forward y target contiene el nombre de un forward dentro del struts-config.xml, exception es el nombre de cómo se va allamar al mensaje en el JSP y error.exception.exception1 es el nombre del error en el archivo properties.

Código PHP:
public ActionForward errorMessage(ActionMapping mapping,ActionForward fwd,
                                                              
ActionMessages messages,HttpServletRequest       
                                                              request
,String targetString nameMsgString msg){
      
ActionMessage message;
      
message = new ActionMessage(msg);
         
messages.add(nameMsg,message);
         
saveMessages(request,messages);
         
fwd=mapping.findForward(target);
         return 
fwd;
   }

Ahora cada vez que entra a esta función interactúa con el ApplicationResources.properties que contiene algo así

Código PHP:
# Optional header and footer for <errors/> tag.
#errors.header=<ul>
#errors.footer=</ul>
error.postalcode.required=Codigo Postal No esta
error
.postalcode.invalid=Codigo Postal Invalido
error
.exception.exception1=No se pudo obtener el requerimiento 
Ya en el JSP hago algo así.

Código PHP:
<html:messages message="true" id="postalcode2">
      <
bean:write name="postalcode2" />
 </
html:messages
Si lo que deseas es que el error se valide en el formulario puedes hacer esto, en el metodo validate de tu clase form.

Código PHP:
public ActionErrors validate(ActionMapping actionMappingHttpServletRequest request) {
        
ActionErrors errors = new ActionErrors();
        if ((
postalCode == null) || (postalCode.length() < 1))
            
errors.add("postalcode1", new ActionError("error.postalcode.required"));
        return 
errors;
    } 
Y llamarlo en el JSP así.

Código PHP:
<html:errors property="postalcode1" /></td