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]]

  • 相关阅读:
    Django 报错RuntimeError: Model class apps.alarms.models.SendAlarmRecord doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
    Go获取Windows下的窗口
    linux中得到当前目录指定文件或者目录的绝对路径
    关于在IDEA中使用maven的运行test目录下的main方法无法找到类的?
    数值变量互换的三种方式
    对于List和普通数组元素怎么去重的方法
    UE编辑器UltraEdit格式化XML数据
    java操作JSON字符串转换成对象的时候如何可以不建立实体类也能获取数据
    java设置RabbitMQ的消费处理出现:ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.
    org.springframework.http.converter.HttpMessageNotReadableException
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/8196086.html
Copyright © 2011-2022 走看看