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

受益此大神:https://blog.csdn.net/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);
                  });
              });

 

posted @ 2018-09-18 17:19  天涯已可  阅读(1717)  评论(1编辑  收藏  举报