@ModelAttribute修饰方法的总结:
1、在处理器方法之前执行,被修饰的方法会执行;
2、如果方法有返回值,那么这个返回值将会被放到model中;
3、方法的参数名与处理器方法参数请求规则一致。handler Adapter会将参数准备好注入进来;
【 修饰参数】:
Handler Adapter在适配处理器方法参数的时候,如果看到有的参数使用了@ModelAttribute修饰,首先会到Model中取出值,如果没有则会新创建一个,
创建完毕之后,自动放入到
@ModelAttribute public void prepareData(HttpServletRequest request,Model model,@PathVariable(required = false) Long id){ model.addAttribute("genders",Gender.values()); model.addAttribute("ctx",request.getContextPath()); if(id!=null){ model.addAttribute("student",studentService.findById(id)); }else { model.addAttribute("student",new Student()); } } |