I'm trying to display a list of global validation errors in my freemarker template if a controller returns binding errors. I can display errors that are associated with a field, but I want to detect when an error has occurred within a specific bean and display a message at the top of the page. I've tried using the example below which produces no output:
The line below always returns 0, despite there being errors with the submitted form:Code:<@spring.bind "webPage" /> .... <#if spring.status.error> There were problems with the data you entered: <ul> <#list spring.status.errorMessages as error> <li>${error?html}</li> </#list> </ul> </#if>
My controller code is below:Code:${spring.status.errorMessages?size}
The createMav method is below:Code:@RequestMapping(method = RequestMethod.POST) public ModelAndView save(@ModelAttribute("webPage") @Valid WebPage page, BindingResult result, Model model) { if (!model.containsAttribute("site")) { throw new IllegalArgumentException("Model must contain site attribute."); } Site site = (Site) model.asMap().get("site"); if (!result.hasErrors() && !page.isNew()) { this.pageService.save(page, site); } else if (!result.hasErrors() && page.isNew()) { this.pageService.create(page, site); } return createMav(result); }
Is there a way to achieve this using Freemarker + Spring MVC?Code:public ModelAndView createMav(BindingResult result) { ModelAndView mav = new ModelAndView(); mav.setViewName(getPrimaryControllerView()); mav.addAllObjects(result.getModel()); return mav; }


Reply With Quote
