一直在使用Spring MVC 但是很少用到@ModelAttribute 注解。@ModelAttribute也是Spring MVC下的一个注解,@ModelAttribute注解只有在被@Controller和@ControllerAdvice两个注解的类下使用,否则无效。
@ModelAttribut注解可以在3种情况下使用分别如下:
第一种
@ModelAttribute 注解在控制器(被@Controller)未被映射(未被@RequestMapping注解)的方法上,这样注解后每一次对当前方法所在映射方法请求时,都会先执行只被@ModelAttribute注解的方法,同时把@ModelAttribute注解方法参数列表中的值设置到请求方法中的模型对象中,这时设置到数据模型中的值的Key及参数名称,内容及参数。
如下方法执行完后进入请求方法时,请求方法的数据模型对象中会有一个
key=user的参数。
写道
@ModelAttribute
public void addUser(User user){
user.setName("张三丰");
}
public void addUser(User user){
user.setName("张三丰");
}
如下代码与上面代码不同的地方是什么那,有什么不同的效果那?
如下代码中与上面代码不同的地方是@ModelAttribue()中参数value的设置和未设置,上面代码中因为没有设置value的值,所以之能在请求方法的数据模型对象中填入key=user对值,使用value参数后,我们可以在增加一个key = user1的值到请求方法的数据模型对象中。如下方法执行后会在请求方法的数据对象中填入两个值分别是
key = user
key = user1
@ModelAttribute(value="user1") public void addUser(User user){ user.setName("张三丰"); }