Spring MVC 使用POJO对象绑定请求参数值

来源:互联网 发布:淘宝网实木椅子坐垫 编辑:程序博客网 时间:2024/05/07 06:36

index.jsp前台页面加上这些,把值输入之后,通过post提交到后台。

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

user.java

package com.hust.springmvc.entities;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 + ",adress"                + address + "]";    }}

address.java

package com.hust.springmvc.entities;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 + "]";    }}

SpringMVCTest.java

package com.hust.springmvc1;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.SessionAttributes;import com.hust.springmvc.entities.User;@Controller@RequestMapping("/springmvc")public class SpringMVCTest {     private static final String SUCCESS = "success";    /**     * SpringMVC 会按请求参数名和 POJO 属性名进行自动匹配, 自动为该对象填充属性值。     * 支持级联属性。如 address.city、address.province 等     */    @RequestMapping("/testPOJO")    public String testPOJO(User user) {        System.out.println("testPOJO User: " + user);        return SUCCESS;    }}

这个时候控制台就会收到前台传过来的所有的值,包括adress里面的city和province。

0 0