Rasmus Lerdorf дал некоторые хорошие советы в своем недавнем представлении" Простой, Тверд " в FrOSCon '08. Если Вы используете кэш байт-кода (и действительно необходимо использовать один), включайте путь, который промахи повреждают много, поэтому оптимизируйте require/require_once.
Попробуйте добавить параметр BindingResult к методам, аннотированным @RequestMapping
, которые имеют аннотированные параметры @ModelAttribute
. После каждого параметра @ModelAttribute
Spring ищет BindingResult в следующей позиции параметра (порядок важен).
Поэтому попробуйте изменить:
@RequestMapping(method = RequestMethod.POST)
public String loadCharts(HttpServletRequest request, ModelMap model, @ModelAttribute("sideForm") Chart chart)
...
To:
@RequestMapping(method = RequestMethod.POST)
public String loadCharts(@ModelAttribute("sideForm") Chart chart, BindingResult bindingResult, HttpServletRequest request, ModelMap model)
...
Убедитесь, что в вашей форме Spring упоминается modelAttribute = "
Пример:
@Controller
@RequestMapping("/greeting.html")
public class GreetingController {
@ModelAttribute("greeting")
public Greeting getGreetingObject() {
return new Greeting();
}
/**
* GET
*
*
*/
@RequestMapping(method = RequestMethod.GET)
public String handleRequest() {
return "greeting";
}
/**
* POST
*
*
*/
@RequestMapping(method = RequestMethod.POST)
public ModelAndView processSubmit(@ModelAttribute("greeting") Greeting greeting, BindingResult result){
ModelAndView mv = new ModelAndView();
mv.addObject("greeting", greeting);
return mv;
}
}
В вашем JSP:
<form:form modelAttribute="greeting" method="POST" action="greeting.html">