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.  

  • 相关阅读:
    物理CPU,物理核,逻辑CPU,虚拟CPU(vCPU)区别 (转)
    JVM学习一:常用JVM配置参数
    docker架构
    Linux查看服务器配置
    redis清缓存
    httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接 (转)
    CentOs7.6配置邮件服务并发送邮件
    linux之dmesg命令
    docker部署springboot项目
    如何查看文件是dos格式还是unix格式的?
  • 原文地址:https://www.cnblogs.com/yikuan-919/p/9737970.html
Copyright © 2011-2022 走看看