首页 > 代码库 > spring mvc 控制器方法传数组对象的一些经验

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

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

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

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

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

@RequestMapping(value=http://www.mamicode.com/{"xxx"}, method = RequestMethod.POST)>前台的话可以通过bars[0].name=xxx 这样的方式来提交表单。

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