SpringMVC----使用POJO[普通的java类]对象绑定请求参数值

1.技术由来

  我们在请求的时候,如果是一个表单的话,这个表单通常需要对应一个类的对象,如果此时使用RequestParam去映射的话,成本太高、太麻烦、复杂、代码凌乱.....

2.概述

  我们这个时候就用一个java对象来作为请求参数,SpringMVC会按照请求参数名和java类属性名进行自动的匹配,自动为该对象进行填充属性值,而且还支持级联属性;

  如:address.city、address.province等;

3.代码

index.jsp

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


实体类

package com.yk.springmvc.entities;

/**
 * 实体类
 * 
 * @author Administrator
 *
 */
public class User {
    private String username;
    private String password;
    private String email;
    private int age;
    //级联属性
    private Address address;

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password + ", email=" + email + ", age=" + age
                + ", address=" + address + "]";
    }
    
}


package com.yk.springmvc.entities;

/**
 * 验证支持级联属性
 * 
 * @author Administrator
 *
 */
public class Address {
    // 省份
    private String province;
    // 城市
    private String city;

    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;
    }

    @Override
    public String toString() {
        return "Address [province=" + province + ", city=" + city + "]";
    }
    
}


java测试代码

    @RequestMapping("/testPojo")
    public String testPojo(User user){
        System.out.println("SpringMVCTest.testPojo()"+user);
        return SUCCESS;    
    }

4.结果

SpringMVCTest.testPojo()User [username=jack, password=123123, [email protected], age=25, address=Address [province=Beijing, city=Beijing]]

  

  

猜你喜欢

转载自www.cnblogs.com/yikuan-919/p/9727323.html