Soluciones: Dependiendo de la versión de struts que usemos valdrán unas u otras.
Solución con ActionMessages: Hago un método que redirigirá y con el código del almacenamiento del mensaje dentro. Puede variar el método, pero el registro del error es casi idéntico siempre.
protected ActionForward findSuccess(ActionMapping mapping, ActionForm arg1, HttpServletRequest request, HttpServletResponse arg3) {
if (this.getActionParameter(ExceptionCortasKeys.PARAM_ID_NO_SELECCIONADO)!=null){
String mensaje = new String("Mensaje de error a mostrar");
// registramos el error
ActionMessages errores = getErrors(request, true);
errores.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("idErrorGlobal", mensaje));
saveErrors(request, errores);
//redirijo a la página de input del mapeo de struts
return mapping.getInputForward();
}
return super.findSuccess(mapping, arg1, request, arg3);
}
Solución con ActionErrors: Explicación idéntica que lo anterior, varía el tipo de mensajes, es decir, el registro del error, quedando así:
ActionErrors errors = getErrors(request, true);
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("global.princastexception", exception.getMessage()));
saveErrors(request, errors);