spring mvc 如何从前台表单传递集合参数并绑定集合对象。

NewMoons 2014-07-31 10:44:20
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

求解,谢谢!
...全文
45837 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
菠萝科技 2016-03-05
  • 打赏
  • 举报
回复
http://m.blog.csdn.net/article/details?id=50803581
gxz0515 2015-03-09
  • 打赏
  • 举报
回复
这方法我已经测试OK了,但是集合长度大于256时发生异常
gxz0515 2015-03-09
  • 打赏
  • 举报
回复
这样的集合大小有没有限制
wangzheng826 2015-01-24
  • 打赏
  • 举报
回复
7楼 @45度C 好像暂时不支持泛型。
Java_er 2015-01-08
  • 打赏
  • 举报
回复
http://jxd-zxf.iteye.com/blog/2072300这样行不行???
45度C 2014-10-13
  • 打赏
  • 举报
回复
为何我也想1和4楼一样做法,不行呢。
NewMoons 2014-08-01
  • 打赏
  • 举报
回复
和struts2比,必须重新定义一个dto来接收数据,就好像struts1中actionform一样感觉有些冗余。 但问题毕竟解决了,至少不用写复杂的解析代码了。
NewMoons 2014-08-01
  • 打赏
  • 举报
回复
3楼用数组也不行。必须使用1楼和4楼的办法。 结贴了。
  • 打赏
  • 举报
回复
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>

  • 打赏
  • 举报
回复
通过String a[]数组接收,然后再遍历数组取值
NewMoons 2014-08-01
  • 打赏
  • 举报
回复
1楼谢谢,我搜了很久也都是这个答案。 但是昨天没有试成功,再试试吧。
whos2002110 2014-08-01
  • 打赏
  • 举报
回复
spring mvc 不能直接接收数组list参数, 必需把这个数组或list作为一个对象的属性接收, 如对象 A a; 有个list属性b然后页面可以通过b[0].name、b[0].xxx、b[1].xxx传值。 控制层方法参数必需是对象a;

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧