Spring 3 MVC - form:errors not showing the errors

Eqbal picture Eqbal · May 18, 2010 · Viewed 35k times · Source

I am using annotation based validation but for one of the forms I am not able to show any errors using the form:errors tag. When I debug the method, I can see the BindingResult has errors, but for some reason its not being displayed on the form. I am stumped as I have got it working on other forms, but for some reason this particular form is having issues. Any pointers are greatly appreciated.

Here is some code from the controller, I have the copyCartForm as a @SessionAttribute as well in the Controller:

@RequestMapping(params="action=Confirm Copy", method=RequestMethod.POST)
public String copyCart(@Valid CopyCart copyCartForm, BindingResult result) {
    if (result.hasErrors()) {
        logger.debug("errors in form" + result.toString());
        return "copyshoppingcart";
    } else {
                    ...
                    ...
        return "redirect:/home";
    }
}

In the JSP I have tried this:

<form:errors path="*" cssClass="formError"/>

as well as:

<form:errors path="fieldName" cssClass="formError"/>

Neither works.

Answer

Eqbal picture Eqbal · May 27, 2010

I had to use @ModelAttribute to get this working. So the form was preceded by @ModelAttribute("copyCartForm") @Valid CopyCart copyCartForm, BindingResult result)