使用在方法上
@ModelAttribute
public void setUser(@RequestParam(value = "name", required = false)String name,
Map<String, Object> map){
System.out.println("name = [" + name + "], map = [" + map + "]");
if (name != null){
User user = new User("yrj", 17, "male");
// 此处放入的key需要和目标方法的入参类名第一个字幕改为小写一致
// 此处目标方法为testModelAttribute,类型为User,所以这里的key为user
// 否则SpringMVC会新创建一个user对象
map.put("user", user);
}
}
@RequestMapping("/setUser")
public String testModelAttribute(User user){
System.out.println("testModelAttribute user = [" + user + "]");
return "success";
}
使用在方法的入参上
上述情况在setUser方法中放入的key需要和目标方法的入参类名第一个字幕改为小写一致。如果在方法的入参上再加一个@ModelAttribute时就可以任意指定key的值
@ModelAttribute
public void setUser(@RequestParam(value = "name", required = false)String name,
Map<String, Object> map){
System.out.println("name = [" + name + "], map = [" + map + "]");
if (name != null){
User user = new User("yrj", 17, "male");
// key的值为abc
map.put("abc", user);
}
}
@RequestMapping("/setUser2")
// @ModelAttribute的值也为abc
public String testModelAttribute(@ModelAttribute("abc") User user){
System.out.println("testModelAttribute user = [" + user + "]");
return "success";
}
本文详细介绍了SpringMVC框架中@ModelAttribute注解的两种使用方式:一种是在方法上使用,另一种是在方法参数上使用。通过具体示例说明了如何利用@ModelAttribute将数据传递到控制器的方法中。
1518

被折叠的 条评论
为什么被折叠?



