• 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=jack@qq.com, age=25, address=Address [province=Beijing, city=Beijing]]

      

      

  • 相关阅读:
    Android实现摇晃手机的监听
    C#实现目录复制
    c# splitter控件使用简介
    一行代码实现java list去重
    安卓最简通讯录操作样例
    java.lang.ClassNotFoundException错误原因汇总
    在Visual Studio 2013中编译libssh2项目
    VS2013中C++创建DLL导出class类
    c#发送邮件样例
    Linux服务器挂死案例分析
  • 原文地址:https://www.cnblogs.com/yikuan-919/p/9727323.html
Copyright © 2020-2023  润新知