zoukankan      html  css  js  c++  java
  • SpringMVC----ModelAttribute注解使用

    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.  

  • 相关阅读:
    通信—互联网协议入门2(转载)
    通信—互联网协议入门1(转载)
    通信—HTTP 协议入门(转载)
    通信—跨域资源共享
    ionic3使用echart插件
    通信—HTTP与HTTPS
    ionic学习笔记—常用命令
    ionic学习笔记—创建项目
    Spark 资源池简介
    数据库设计原则
  • 原文地址:https://www.cnblogs.com/yikuan-919/p/9737970.html
Copyright © 2011-2022 走看看