首页 > 代码库 > SpringMVC-@ModelAttribute注解2
SpringMVC-@ModelAttribute注解2
先看一个没有使用@ModelAttribute的Controller方法
@RequestMapping("/save")
public String save(User user) {
user.setUsername("U love me");
userService.save(user);
return "result";
}
执行此方法时会将key为"user"(注意:这里即使参数名称是user1,key一样还是"user"),
value为user的对象加入到model。在jsp页面可以通过${user.id}和${user.name}得到值的,
即上面方法和下面方法是相当的:
@RequestMapping("/save")
public String save(Model model,int id,String username) {
User user=new User();
//这里是通过反射从request里面拿值再set到user
user.setId(id);
user.setUsername(username);
model.addAttribute("user",user);
user.setUsername("U love me");
userService.save(user);
return "result";
}
一.下面再来看看@ModelAttribute的基本用法.
1.在方法上使用@ModelAttribute
@ModelAttribute("user1")
public User addUser(User user) {
return new User(520,"I love U");
}
若在Controller内,那么执行Controller内带有@RequestMapping的方法之前,都会先执行此addUser方法。
并且执行addUser过程中会添加两个对象到model,
先添加key为"user"的对象(由addUser方法的User user引起的),再添加key为"user1"的对象(由注解@ModelAttribute("user1")引起的).
2.在方法参数上使用@ModelAttribute.
@RequestMapping("/save")
public String save(@ModelAttribute User user) {
user.setUsername("U love me");
userService.save(user);
return "result";
}
此方法会先从model去获取key为"user"的对象,如果获取不到会通过反射实例化一个User对象,
再从request里面拿值set到这个对象,然后把这个User对象添加到model(其中key为"user")。
使用了@ModelAttribute可修改这个key,不一定是"user",此情况下,用与不用@ModelAttribute没有区别。
SpringMVC-@ModelAttribute注解2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。