I was looking at the code for Action.saveErrors(...) and was think this
is a little inflexible when it comes to error and message management:

protected void saveErrors(HttpServletRequest request, ActionMessages errors) {

        // Remove any error messages attribute if none are required
        if ((errors == null) || errors.isEmpty()) {
            request.removeAttribute(Globals.ERROR_KEY);
            return;
        }

        // Save the error messages we need
        request.setAttribute(Globals.ERROR_KEY, errors);

}


If I have errors occur in different locations, rather than returning
ActionMessages objects and having to merge them myself prior to calling
"saveErrors" or "saveMessages", why not have this be more like
"addError" or "addMessage" at the action level so that the user doesn't
need to maintain the "ActionMessages" object themselves? As well they
can call saveError almost anywhere in the code without overwriting the
existing errors object, which is "saveErrors" existing behavior.

   ...

   saveError(request,"foo", new ActionMessage("foo.bar"));

   ...

protected void saveError(HttpServletRequest request, String key, ActionMessage error) {

ActionMessages errors = (ActionMessages) request.removeAttribute(Globals.ERROR_KEY);

        // Remove any error messages attribute if none are required
        if ((errors == null)) {
              errors = new ActionMessages();
        }

         errors.add(key, error);

         request.setAttribute(Globals.ERROR_KEY, errors);

}

-Mark Diggory


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to