zoukankan      html  css  js  c++  java
  • 每天学点SpringMVC-@ModelAttribute注解

    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对象进行赋值

         1.5 @ModelAttribute注解的作用

    2. 源代码分析流程

       

    3. SpringMVC 确定目标方法POJO类型入参的过程 

  • 相关阅读:
    UVa 1592 Database(巧用map)
    TZOJ 4746 Xiangqi(模拟棋盘数组)
    TZOJ 1545 Hurdles of 110m(01背包dp)
    TZOJ 2754 Watering Hole(最小生成树Kruskal)
    TZOJ 1242 求出前m大的数(预处理)
    TZOJ 5280 搜索引擎(模拟字符串)
    TZOJ 4865 统计单词数(模拟字符串)
    TZOJ 5279 马拉松比赛(广搜)
    [luogu4735]最大异或和
    小奇回地球
  • 原文地址:https://www.cnblogs.com/xpawn/p/7554985.html
Copyright © 2011-2022 走看看