spring中的表单参数绑定

在表单提交数据中name的值可以自动的复制给控制器中对应的参数,甚至自动组成对象(需要设置的setter和getter函数),例如

<form action="param/saveAccount" method="post">
    姓名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    金额:<input type="text" name="money"><br>
    用户姓名:<input type="text" name="u.uname"><br>
    用户年龄:<input type="text" name="u.age"><br>
    list测试<br>
    <input type="text" name="list[0].uname"><br>
    <input type="text" name="list[0].age"><br>
    map测试<br>
    <input type="text" name="map['one'].uname"><br>
    <input type="text" name="map['one'].age"><br>

    <input type="submit">
对象部分
package com.yrk.domain;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public class Account implements Serializable {
    private String username;
    private String password;
    private String money;
    private User u;

    private List<User> list;
    private Map<String,User> map;

    @Override
    public String toString() {
        return "Account{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", money='" + money + '\'' +
                ", u=" + u +
                ", list=" + list +
                ", map=" + map +
                '}';
    }

    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 getMoney() {
        return money;
    }

    public void setMoney(String money) {
        this.money = money;
    }

    public User getU() {
        return u;
    }

    public void setU(User u) {
        this.u = u;
    }

    public List<User> getList() {
        return list;
    }

    public void setList(List<User> list) {
        this.list = list;
    }

    public Map<String, User> getMap() {
        return map;
    }

    public void setMap(Map<String, User> map) {
        this.map = map;
    }
}

输入的参数自动组装为Account对象

    @RequestMapping("/param/saveAccount")
    public String saveAccount(Account account){
        System.out.println(account);
        return "success";
    }

输出

Account{username='yu666', password='111', money='100', u=User{uname='yrk', age=44}, list=[User{uname='熊大', age=11}], map={one=User{uname='熊二', age=22}}}
posted @ 2020-01-17 16:15  开局一把刀  阅读(8)  评论(0)    收藏  举报