首页 > 编程语言 > 详细

spring mvc 控制器方法传数组对象的一些经验

时间:2014-07-12 19:36:04      阅读:379      评论:0      收藏:0      [点我收藏+]

因为项目需要在一个表单里面提交多个对象,比较好的做法就是直接在控制器方法参数里传一个数组。

由于Spring mvc框架在反射生成控制方法的参数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 但是一直报NoSuchMethodException的异常

根据这个方法的jdk文档,这个类是一个数组对象时,这个方法会抛出java.lang.NoSuchMethodException,因为接口、数组类、void、基本类型没有构造函数。

同事后来给我支了两招,使用ArrayList来代替原生数组,或者使用DTO来封装一下原生的数组,Spring mvc就能够找到这个参数的构造函数了。

@RequestMapping(value={"xxx"}, method = RequestMethod.POST)
public String foo(ArrayList<Bar> bars){
	param.get(0);
}
class BarArray{
	Bar[] bars;
	public Bar[] getBars(){
		return bars;
	}
	public void setBars(Bar[] bars){
		this.bars = bars;
	}
}
@RequestMapping(value={"xxx"}, method = RequestMethod.POST)
public String foo(ArrayList<Bar> bars){
	param.get(0);
}
前台的话可以通过bars[0].name=xxx 这样的方式来提交表单。

还有一点就是基本类型的数组不需要这样做,因为不需要构造函数。

spring mvc 控制器方法传数组对象的一些经验,布布扣,bubuko.com

spring mvc 控制器方法传数组对象的一些经验

原文:http://blog.csdn.net/zxjcarrot/article/details/37657087

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!