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

求解,谢谢!
...全文
45706 12 打赏 收藏 转发到动态 举报
写回复
用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>

Raise扬 2014-08-01
  • 打赏
  • 举报
回复
通过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;
Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7、其它 目录: Spring MVC 3.0新特性 Spring MVC框架结构 Spring MVC框架结构 框架的实现者 目录 HTTP请求映射原理 Spring MVC进行映射的依据 通过URL限定:URL表达式 通过URL限定:绑定{xxx}中的值 通过请求方法限定:请求方法 通过请求方法限定:代码示例 通过请求方法限定:模拟请求方法 通过请求/请求头参数限定:示例 通过请求/请求头参数限定:更多 目录 通过注解绑定:示意图 通过注解绑定:示例 通过注解绑定:小心抛出异常 使用命令/表单对象绑定 使用Servlet API对象作为入参 使用Spring的Servlet API代理类 使用IO对象作为入参 其他类型的参数 HttpMessageConverter HttpMessageConverter实现类 使用@RequestBody/@ResponseBody 使用HttpEntity/ResponseEntity 输出XML和JSON 使用HttpEntity/ResponseEntity 目录 数据绑定机理 数据类型转换 PropertyEditor依然有效 强大的ConversionService,让很多梦想成真 基于ConversionService体系,定义自定义的类型转换器 格式化:带格式字符串内部对象 相互转换 使用支持格式化的转换器 数据校验框架 JSR 303 数据校验框架 如何使用注解驱动的校验 使用校验功能时,处理方法要如何签名?? 校验错误信息存放在什么地方?? 页面如何显示错误信息 如何对错误信息进行国际化(1) 如何对错误信息进行国际化(2) 目录 数据模型访问结构 访问数据模型:ModelAndView 访问数据模型:@ModelAttribute 访问数据模型:Map及Model 访问数据模型:@SessionAttributes 一场由@SessionAttributes引发的血案... 如何避免@SessionAttributes引发的血案 目录 Spring MVC如何解析视图 视图解析器类型 基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 静态资源处理:原理 静态资源处理:如何配置? 静态资源处理:如何配置? 物理静态资源路径映射逻辑资源路径 允许利用浏览器的缓存且不当心不同步 AQ?

81,092

社区成员

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

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