zoukankan      html  css  js  c++  java
  • SpringMVC(七):@RequestMapping下使用POJO对象绑定请求参数值

    Spring MVC会按照请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值,支持级联属性。

    如:address.city.dept.address.province等。

    步骤一:定义Account.java,Address.java类:

     1 package com.dx.springlearn.entities;
     2 
     3 public class Account {
     4     private String username;
     5     private String password;
     6     private Integer age;
     7     private Address address;
     8 
     9     public String getUsername() {
    10         return username;
    11     }
    12 
    13     public void setUsername(String username) {
    14         this.username = username;
    15     }
    16 
    17     public String getPassword() {
    18         return password;
    19     }
    20 
    21     public void setPassword(String password) {
    22         this.password = password;
    23     }
    24 
    25     public Integer getAge() {
    26         return age;
    27     }
    28 
    29     public void setAge(Integer age) {
    30         this.age = age;
    31     }
    32 
    33     public Address getAddress() {
    34         return address;
    35     }
    36 
    37     public void setAddress(Address address) {
    38         this.address = address;
    39     }
    40 
    41     @Override
    42     public String toString() {
    43         return "Account [username=" + username + ", password=" + password + ", age=" + age + ", address=" + address
    44                 + "]";
    45     }
    46 
    47 }
    package com.dx.springlearn.entities;
    
    public class Address {
        private String province;
        private String city;
        private String details;
    
        public String getProvince() {
            return province;
        }
    
        public void setProvince(String province) {
            this.province = province;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    
        public String getDetails() {
            return details;
        }
    
        public void setDetails(String details) {
            this.details = details;
        }
    
        @Override
        public String toString() {
            return "Address [province=" + province + ", city=" + city + ", details=" + details + "]";
        }
    
    }

    步骤二:在HelloWord.java控制类内添加testPojo方法:

    package com.dx.springlearn.handlers;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.CookieValue;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestHeader;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    
    import com.dx.springlearn.entities.Account;
    
    @Controller
    @RequestMapping("class_requestmapping")
    public class HelloWord {
        private static String SUCCESS = "success";
    
        @RequestMapping("/testPojo")
        public String testPojo(Account account) {
            System.out.println("testPojo: account:" + account);
            return SUCCESS;
        }
    }

    步骤三:在index.jsp中添加表单提交html脚本:

        <form name="testPojo" method="POST"
            action="class_requestmapping/testPojo">
            username:<input type="text" name="username" /> <br>
            password:<input type="password" name="password" /> <br>
            age:<input type="text" name="age" /> <br>
            address:<br>
            province:<input type="text" name="address.province" /> <br>
            city:<input type="text" name="address.city" /> <br>
            details:<input type="text" name="address.details" /> <br>
            <input type="submit" value="Submit">
        </form>
        <br>

    步骤四:测试

    提交表单后,打印结果:

    testPojo: account:Account [username=abc123, password=123456, age=28, address=Address [province=zhejiang, city=hangzhou, details=hangzhou huo che zhan]]

  • 相关阅读:
    如何选择数据科学最好的Python IDE?
    Python代码详解:入门时间序列分类
    2月编程语言排行榜:Python 稳坐前三,Java依旧第一
    写 Python 时的 5 个坏习惯
    Python的多线程threading和多进程multiprocessing
    Python看春运,万条拼车数据背后的春节迁徙地图
    python数据分析案例实战——融360客户贷款风险预测(信用卡)
    情人节攻略:用Python撒狗粮的正确姿势
    Python函数式编程
    python基础
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/8196086.html
Copyright © 2011-2022 走看看