spring mvc 怎么从前台表单传递集合参数并绑定集合对象
spring mvc 如何从前台表单传递集合参数并绑定集合对象。
Public class Person{
private String username;
private String int age;
set,get.......
}
记得用Struts2的时候页面表单这样
<form id="form" action="test/test.do" method="post">
<input type="text" name="persons.username[0]" value="jobs"/>
<input type="text" name="persons.age[0]" value="55"/><br/>
<input type="text" name="persons.username[1]" value="jim"/>
<input type="text" name="persons.age[1]" value="21"/><br/>
<input type="submit">
<form>
然后Action类的属性里可以通过ArrayList<Person> persons直接接收(或者叫装配注入)
但在Springmvc的控制层方法里这样无法接收,尝试了很多写法都不行
@ModelAttribute(value = "persons") ArrayList<Person> persons
求解,谢谢!
------解决方案--------------------
spring mvc 不能直接接收数组list参数, 必需把这个数组或list作为一个对象的属性接收, 如对象 A a; 有个list属性b然后页面可以通过b[0].name、b[0].xxx、b[1].xxx传值。 控制层方法参数必需是对象a;
------解决方案--------------------
spring提供简单的对象绑定,当然支持集合对象绑定了。不过你要定义一个对象,属性有一个集合,集合里存放Person对象。
比如
Public class Person{
private String username;
private String int age;
set,get.......
}
记得用Struts2的时候页面表单这样
<form id="form" action="test/test.do" method="post">
<input type="text" name="persons.username[0]" value="jobs"/>
<input type="text" name="persons.age[0]" value="55"/><br/>
<input type="text" name="persons.username[1]" value="jim"/>
<input type="text" name="persons.age[1]" value="21"/><br/>
<input type="submit">
<form>
然后Action类的属性里可以通过ArrayList<Person> persons直接接收(或者叫装配注入)
但在Springmvc的控制层方法里这样无法接收,尝试了很多写法都不行
@ModelAttribute(value = "persons") ArrayList<Person> persons
求解,谢谢!
------解决方案--------------------
spring mvc 不能直接接收数组list参数, 必需把这个数组或list作为一个对象的属性接收, 如对象 A a; 有个list属性b然后页面可以通过b[0].name、b[0].xxx、b[1].xxx传值。 控制层方法参数必需是对象a;
------解决方案--------------------
spring提供简单的对象绑定,当然支持集合对象绑定了。不过你要定义一个对象,属性有一个集合,集合里存放Person对象。
比如
public class PersonList {
private List<Person> person;
public List<Person> getPerson() {
return person;
}
public void setPerson(List<Person> person) {
this.Person= person;
}
}
controller里:
@RequestMapping(value = "xxx", method = RequestMethod.POST)
public void test(PersonList person) {
//遍历person
}
页面要这样写:
<form id="form" action="test/test.do" method="post">
<input type="text" name="person[0].username" value="jobs"/>
<input type="text" name="person[0].age" value="55"/><br/>
<input type="text" name="person[1].username]" value="jim"/>
<input type="text" name="person[1].age" value="21"/><br/>
<input type="submit">
<form>