码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC----ModelAttribute注解使用

时间:2018-10-02 22:12:45      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:private   数据库   test   运行流程   bubuko   alt   表单   for   字符串   

1.需求:

index.jsp

<!-- 模拟修改操作
        1.原始数据:1,Tom,123456,tom@qq.com,25,BJ
        2.要求密码不能被修改
        3.表单回显,模拟操作直接在表单填写对应的属性值
     -->
     <form action="springmvc/testModelAttribute" method="POST">
         <input type="hidden" name="id" value="1"/>
         username:<input type="text"  name="username" value="Tom" />
         <br>
         email:<input type="text" name="email" value="tom@qq.com"/>
         <br>
         age:<input type="text"  name="age" value="25"/>
         <br>
         <input type="submit" value="submit" />
     </form>



测试代码:

@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
    
    private static final String SUCCESS = "success";
    
    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(User user){
        System.out.println("修改:"+user);
        return SUCCESS;
    }
}


结果:
修改:User [id=1, username=Tom, password=null, email=tom@qq.com, age=11111]

2.解决需求:

测试代码:

@RequestMapping("/springmvc")
@Controller
public class SpringMVCTest {
    
    private static final String SUCCESS = "success";
    
    @ModelAttribute
    public void getUser(@RequestParam(value="id",required=false) Integer id,
            Map<String,Object> map){
        if(id!=null){
            //模拟从数据库中获取对象,把对象放进map里面
            User user = new User(1, "Tom", "123456", "tom@qq.com", 25);
            System.out.println("从数据库中获取一个对象"+user);    
            map.put("user", user);
        }
    }
    
    @RequestMapping("/testModelAttribute")
    public String testModelAttribute(User user){
        System.out.println("修改:"+user);
        return SUCCESS;
    }
}


结果:
从数据库中获取一个对象User [id=1, username=Tom, password=123456, email=tom@qq.com, age=25]
修改:User [id=1, username=Tom, password=123456, email=tom@qq.com, age=22222]

 3.总结运行流程:

  1.  @ModelAttribute注释修饰的方法:从数据库中取出对象,把对象放入到了map中,键为user;

  2.  SpringMVC从map中取出user对象,并把表单的请求参数赋给该User对象的对应属性;

  3.  SpringMVC把上述对象传入目标方法的参数;

4.注意:

  1.  在@ModelAttribute修饰的方法中,放入到map时的键需要和目标方法入参类型的第一个字母小写的字符串一致;

  2.  技术分享图片

 

SpringMVC----ModelAttribute注解使用

标签:private   数据库   test   运行流程   bubuko   alt   表单   for   字符串   

原文地址:https://www.cnblogs.com/yikuan-919/p/9737970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!