SpringMVC @ModelAttribute
-
注意的地方
当类中定义了@ModelAttribute 注解的方法(定义在方法上),此时所以的@RequestMapping 定义的方法在执行前都会执行被@ModelAttribute定义的方法,如果此类对应多个视图,要谨慎使用,防止值混乱
-
作用:
1.在有@RequestMapping 注解的类中,可以注解方法的参数设置Model属性暴露给web视图
2.也可以注解方法的返回值设置Model属性,暴露给web视图
-
例子
1.设置注解返回值的:将值注入model 属性中
// 第一种情况
@ModelAttribute
public void testModel(Model model,@RequestParam String type) {
model.addAttribute("type",type);
}
第一种情况的变形
//第一种情况的变形,
//此时key 值为所放入的参数类型的名称全小写形式
@ModelAttribute
public void testModel2(Model model,@RequestParam String type) {
model.addAttribute(type);
}
//或
//同上属变形一样,key也是参数类型的小写形式
@ModelAttribute
public String testModel3(Model model,@RequestParam String type) {
return type;
}
//变形的key 实在很不方便,而且多个相同类型值如果设置进入
// Model会重复,可以在方法上的@ModelAttribute注解中添加
// value属性指定key值
2.设置在方法参数声明上,从model 中取对应 的key值
@RequestMapping("test2")
public String test2(@ModelAttribute("type") String type) {
return "../index";
}
参考: https://blog.csdn.net/lovesomnus/article/details/78873089