springMVC传递一组对象的接受方式

本文介绍了一种从前台动态添加对象,并将这些对象作为集合数据提交到后台的方法。通过创建一个公共模型来接收前台传来的集合数据,再利用Controller进行处理。文中详细展示了具体的实现步骤,包括模型定义、控制器编写及前端表单与JavaScript代码。

受益此大神:https://blog.youkuaiyun.com/cgd_8523/article/details/80022331

同时借鉴代码!!!!

我只用了一种方法,就记下这一种

需求:前台存在动态添加对象(点击添加,增加一行,每行都是对象的属性)

准备后台:

1、建立公用模型,用来接收前台传递的集合数据。注意list的泛型,这里需给出要传递对象,我用过泛型T,白搭。。。

ublic class UserModel {
    private List<User> users;
 
    public List<User> getUsers() {
        return users;
    }
 
    public void setUsers(List<User> users) {
        this.users = users;
    }
 
    public UserModel(List<User> users) {
        super();
        this.users = users;
    }
 
    public UserModel() {
        super();
    }
 
}

2、编写Controller

@RequestMapping(value = "/submitUserList_2", method ={RequestMethod.POST})
    @ResponseBody
    public String submitUserList_2(UserModel users)
            throws Exception{
        String result = "";
        List<User> userList = users.getUsers();
        if(userList == null || userList.size() <= 0){ return "No any ID.中文"; }
        result = this.showUserList(userList);
        return result;
    }

3、前台控制,form表单,简单点儿写,这个不重要

  <form action="/user/submitUserList_2" method="post">
    <table>
<tr>
       <td> ID:<input type="text" name="users[0].id"></td>
        <td>Username:<input type="text" name="users[0].name"></td>
       <td> Password:<input type="text" name="users[0].pwd"></td>
         <input type="submit" value="Submit">
</tr>
</table>
    </form>

 

4、js因为我这是灵活的form,所以给出一个比较变态的方法

var f=document.forms[0];
              $(f).find("tr").each(function(i){
                  i=i-4;
                  if(i>=0)
                  $(this).find("input").each(function(){
                      var n=$(this).attr("name");
                      var _n="users["+i+"]."+n;
                      $(this).attr("name",_n);
                  });
              });

 

转载于:https://www.cnblogs.com/of-course/p/9670114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值