0

在数据库错误中提交多个值时它给了我一个 错误:IndexOutofBond

<form action="emp/forsubmit" method=" post">
   <input id="emp[0].name" name="emp[0].name"  type="text"/>
   <input id="emp[0].lastname" name="emp[0].lastname"  type="text"/>
<input id="emp[1].name" name="emp[1].name"  type="text"/>
<input id="emp[1].lastname" name="emp[1].lastname"  type="text"/>
</form>

我正在使用MongoDb作为 Db

控制器源代码:

def update(){

if(empInstance.getEmp_history() == null || empInstance.getEmp_history().size() == 0) {
            empInstance.setEmp_history(new ArrayList<EmpHistory>());
            empInstance.getEmp_history().add(new EmploymentHistory());
        }
 empInstance.properties = params
}
4

2 回答 2

2

使用同名属性值:

First: <input type="text" name="firstname"/>
First: <input type="text" name="lastname"/>

Second: <input type="text" name="firstname"/>
Second: <input type="text" name="lastname"/>

提交表单后,grails 会将它们作为数组处理,然后为每个循环填充您的域对象:

params.firstname.eachWithIndex { value, index ->
     // use index to access the values in other array
     // params.lastname[index]
     def mydomain = new MyDomain()
     mydomain.firstname = value
     mydomain.lastname  = params.lastname[index]
     mydomain.save()
}
于 2014-10-25T08:27:27.417 回答
0

使用同名属性值:

First: <input type="text" name="firstname"/>
First: <input type="text" name="lastname"/>

Second: <input type="text" name="firstname"/>
Second: <input type="text" name="lastname"/>

即使元素只有一个,下面的代码也可以工作,并且在提交表单时它们将被 grails 作为数组处理,然后为每个循环填充您的域对象:

def firstName = params.list('firstname')   
def lastName = params.list('lastname') 
firstName.eachWithIndex { value, index ->
     // use index to access the values in other array
     // params.lastname[index]
     def mydomain = new MyDomain()
     mydomain.firstname = value
     mydomain.lastname  = lastName[index]
     mydomain.save()
}
于 2016-12-27T09:52:59.920 回答