input中的name都相同,在后台,用String[] names = request.getParameterValues("name");// 名称
String[] moneys = request.getParameterValues("money");// 密码
.....N行,N=对象中的属性的个数然后写个for循环,按照其中一个数组来循环,
for (int i = 0; i < names.length; i++) {
    先new对象,然后根据属性一次赋值,这些数组中的属性和前台的顺序是一致的
}

解决方案 »

  1.   

    将数组包装一下比如你要接收一个Bank类型的数组,那么先建一个类
    class BankArray{
        private Bank banks[] ;

        public void setBanks(Bank[] banks) {
    this.banks = banks;
        }

        public Bank[] getBanks() {
     return banks;
        }
    }//用 BankArray  作参数
    @RequestMapping(value ="xxx" , method = RequestMethod.POST)
    public ModelAndView doLogOut(BankArray param){  }/* 页面用下面的方式 */
    <input name="banks[0].name" value="name1" />
    <input name="banks[0].address" value="address1" /><input name="banks[1].name" value="name2" />
    <input name="banks[1].address" value="address2" /><input name="banks[2].name" value="name3" />
    <input name="banks[2].address" value="address3" />
      

  2.   

    动态添加一般伴随动态删除,如果id每次都+1的话,增加删除几回后,id容易不连续。
      

  3.   

    元素是动态的,你的js也是动态的,也就是说name属性应该在submit的时候赋值 而不是在增加的时候赋值,<input id="name" value="a" />
    <input id="name" value="b" />
    <input id="name" value="c" />
    ...
    $("input[id=name]").each(function(n,d){
    this.name="name["+n+"]";
    });
    form.submit() or $.ajax
      

  4.   

    元素是动态的,你的js也是动态的,也就是说name属性应该在submit的时候赋值 而不是在增加的时候赋值,<input id="name" value="a" />
    <input id="name" value="b" />
    <input id="name" value="c" />
    ...
    $("input[id=name]").each(function(n,d){
    this.name="name["+n+"]";
    });
    form.submit() or $.ajax有没有完整代码,谢谢
      

  5.   

    我也遇到这种情况了,将一个表格中所有数据提交。
    数据都提交过去了aid 3
    aid 3
    od on
    od on
    price 9000
    price 10000
    product.pid 3
    product.pid 4
    pstock
    pstock
    scid 3
    scid 10
    scqty 13
    scqty 1
    total 127000 
    参数都出来了,后台用数组,list都不能正常接收感觉用每个属性一个数组的话太繁琐了