1.关于springmvc 的validation,一直出现error:Neither BindingResult nor plain target object for bean name 'userForm' available as request attribute
原来是自己在设置跳转时,直接跳到login.jsp页面,应该是先跳到controller处理器,经过controller处理器处理完,再跳转到login.jsp。
关于详细的设置,可以参考这篇文章:
Spring MVC Form Validation Example with Bean Validation API
2.关于controller处理器注意
@RequestMapping(value = "/loginController", method = RequestMethod.GET)
public String viewLogin(Map<String, Object> model) {
User user = new User();
model.put("userForm", user);
return "login";
}
@RequestMapping(value = "/loginController" ,method = RequestMethod.POST)
public ModelAndView loginPage(HttpSession httpSession, @Valid
@ModelAttribute("userForm")
User userForm, BindingResult result,Map<String, Object> model) {
System.out.println("routeController....login");
ModelAndView modelAndView = new ModelAndView();
if (result.hasErrors()) {
System.out.println("hasErrors!!!!!!!!!");
modelAndView.setViewName("redirect:/loginController");
return modelAndView;
}
modelAndView.setViewName("redirect:/");
return modelAndView;
}
viewLogin()这个方法不能省略,大致了解下,最开始进入这个方法,然后将user这个pojo类,通过返回"login"传入到login.jsp中,login.jsp如果comit,就会跳转到loginPage()这个函数进行处理。