码迷,mamicode.com
首页 > 其他好文 > 详细

20170920

时间:2017-09-20 22:01:14      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:poj   map   优先   技术   void   ges   有一个   标识   输出   

1. @ModelAttribute属性的使用

    1.1 构建表单页面

 <form action="test/testPojo.do">
        <input type="hidden" value="1" name="id">
        Account: <input name="account" value="Tom"> <br>
        Password : <input name="password" value="123123">
        <input type="submit">
    </form>

    1.2 构建Controller

@RequestMapping("/test")
@Controller
public class TestController {

    @ModelAttribute
    public void getUser(@RequestParam("id") String id, Map map){
        System.out.println("getUser id : " + id);
        if(id != null){
            User user = new User() ;
            user.setId("1");
            user.setName("Tom");
            map.put("user",user) ;
        }
    }

    @RequestMapping("/testPojo.do")
    public void testPojo(User user){
        System.out.println("user : " + user);
    }
}

     1.3 运行输出结果

技术分享

     1.4 个人理解

@ModelAttribute标识的方法会在所有@RequestMapping匹配到的请求之前优先被执行,并且同@RequestMapping标识的方法一样,也能获取到请求发过来的参数,如实例所示,在@ModelAttribute注解标识的方法中,向RequestScope中添加了user数据。在方法testPojo中,有一个入参user,这里会优先判断requestScope中是否有对应的User数据,如果有直接拿过来用,如果没有则new出来一个,并将请求过来的参数根据属性名自动对Pojo对象进行赋值

2. 源代码分析流程

   技术分享

 

20170920

标签:poj   map   优先   技术   void   ges   有一个   标识   输出   

原文地址:http://www.cnblogs.com/xpawn/p/7554985.html

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