直接在方法上使用List<Bean>报不能实例化错误!

必须将List<Bean>放在某个对象里作为属性方可接收。具体见如下例子

前端代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>page</title>
</head>
<body>
<h1>数组传参数测试</h1> <script src="/webpagetest/js/jquery-2.0.3.min.js"></script> <script type="text/javascript"> function test() {
$.ajax({
url:'/webpagetest/pageData',
data:{
'id':1,
'order[0].column':'name',
'order[0].dir':'asc',
'order[1].column':'phone',
'order[1].dir':'desc'
},
success:function (rt) {
alert(rt);
},
error:function () {
alert('error');
} });
} function test2() {
$.ajax({
url:'/webpagetest/pageData2',
data:{
'id':1,
'order[0][column]':'name',
'order[0][dir]':'asc',
'order[1][column]':'phone',
'order[1][dir]':'desc'
},
success:function (rt) {
alert(rt);
},
error:function () {
alert('error');
} });
}
</script> <button onclick="test()">测试</button>
<button onclick="test2()">测试2</button>
</body>
</html>

后台代码

@RequestMapping("/pageData")
@ResponseBody
public String index(@RequestParam(value="order[0].column",required = false) String order0column,
HttpServletRequest request,
MyVO vo){ System.out.println("获取单个参数:");
System.out.println(order0column); System.out.println("获取所有参数:");
Map<String,String[]> params = request.getParameterMap();
for(Map.Entry<String,String[]> entry:params.entrySet()){
System.out.println("key:"+entry.getKey()+" value:"+ Arrays.asList(entry.getValue()));
} System.out.println("获取VO");
System.out.println("id:"+vo.getId());
System.out.println("orders:");
for(Order o:vo.getOrder()) {
System.out.println("column:" + o.getColumn()+" dir:"+o.getDir());
} return "ok";
} @RequestMapping("/pageData2")
@ResponseBody
public String index(@RequestParam(value="order[0][column]",required = false) String order0column,
HttpServletRequest request /*,
MyVO2 vo2*/){ System.out.println("获取单个参数:");
System.out.println(order0column); System.out.println("获取所有参数:");
Map<String,String[]> params = request.getParameterMap();
for(Map.Entry<String,String[]> entry:params.entrySet()){
System.out.println("key:"+entry.getKey()+" value:"+ Arrays.asList(entry.getValue()));
} // System.out.println("获取VO2");
// System.out.println("id:"+vo2.getId());
// System.out.println("orders:");
// for(List<String> o:vo2.getOrder()) {
// System.out.println("column:" + o.get(0)+" dir:"+o.get(1));
// } return "ok";
}

两个实体对象(必须是独立的文件中的类,否则一直报找不到构造函数的错误)

public class MyVO{

    private int id;

    private List<Order> order = new ArrayList<Order>();

    public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public List<Order> getOrder() {
return order;
} public void setOrder(List<Order> order) {
this.order = order;
}
}
public class Order{
private String column;
private String dir; public String getColumn() {
return column;
} public void setColumn(String column) {
this.column = column;
} public String getDir() {
return dir;
} public void setDir(String dir) {
this.dir = dir;
}
}

springmvc接收数组类型参数的更多相关文章

  1. springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例

    案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...

  2. Springmvc接收数组参数

    Springmvc接收数组参数,必须添加@RequestParam注解 注解格式@RequestParam(value="前端参数名[]") 示例: controller端的代码 ...

  3. springmvc接收date类型参数

    springmvc在表单提交接收date类型参数的时候会报错:Cannot convert value of type [java.lang.String] to required type [jav ...

  4. ajax传数组到后台,后台springmvc接收数组参数

    var   ids= new Array();  $("input[class='detailCheck']:checked").each(function(i,k){   var ...

  5. angularJS前台传list数组,后台springMVC接收数组

    有时候需要在前台自定义对象,然后把对象封装在list中,在传送到后台,这样的思想也比较合理 1. 前台代码 $scope.saveScore = function () { $scope.userSc ...

  6. springmvc接收数组方式总结

    1.接受正常的数组 如param1=aaa&param1=bbb&param1=3 对于这种,在实体参数中,使用String param1[] 这种参数既可以获取数组的值 2.接受数组 ...

  7. 【blog】SpringMVC接收数组

    页面 var idsArray = new Array(); idsArray.push(userId); SpringMVC @RequestParam(value = "ids[]&qu ...

  8. springmvc接收前台(如ajax)传来的数组list,set等图文详解

        ref:https://blog.csdn.net/wabiaozia/article/details/50803581 前言: 相信很人都被springmvc接收数组问题折磨过,查过几个解决 ...

  9. spring mvc接收数组

    (一)前言 对于springmvc接收数组的问题啊,我试验过几次,但是了有时候成功了,有时候失败了,也不知道为啥的,然后现在又要用到了,所以打算具体看看到底怎么回事,但是了我实验成功了顺便找了好多资料 ...

随机推荐

  1. 2017-2018-2 『网络对抗技术』Exp3:免杀原理与实践

    1. 免杀原理与实践说明 一.实验说明 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) ...

  2. 20155229《网络对抗技术》Exp2:后门原理与实践

    实验预习 后门: 指绕过安全控制而获取对程序或系统访问权的方法.最主要目的就是方便以后再次秘密进入或者控制系统. 木马与后门的区别: 木马:通过欺骗用户的方法(包含捆绑,利用网页等)让用户不知不觉的安 ...

  3. 20155333 《网络对抗》 Exp8 Web基础

    20155333 <网络对抗> Exp8 Web基础 基础问题 (1)什么是表单? 表单在网页中主要负责数据采集功能. 一个表单有三个基本组成部分: 表单标签,这里面包含了处理表单数据所用 ...

  4. Ajax 上传文件(input file FormData)

    FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据.其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用. jQuery Aj ...

  5. 重新解读DDD领域驱动设计(一)

    回顾 十年前,还未踏入某校时,便听闻某学长一毕业就入职北京某公司,月薪过万.对于一个名不见经传的小学院,一毕业能拿到这个薪水还是非常厉害的.听闻他学生期间参与开发了一款股票软件,股票那时正迎来一波疯涨 ...

  6. 我是SPI,我让框架更加优雅了!

    文章首发于[陈树义的博客],点击跳转到原文<我是 SPI,我让框架更加优雅了!> 自从上次小黑进入公司的架构组之后,小黑就承担起整个公司底层框架的开发工作.就在刚刚,小黑又接到一个任务:做 ...

  7. svn插件下载的两种方式

     1.下载SVN插件     SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.x  Links for 1.8.x Release:          Eclipse up ...

  8. Python+opencv 图像拼接

    1.http://www.cnblogs.com/skyfsm/p/7411961.html ,给出了很好地拼接算法实现 2.由于不是Python的,所以简单做了一些翻译转成Python+opencv ...

  9. 初学Direct X(7) ——位图的旋转,缩放以及平移

    初学Direct X(7) --位图的旋转,缩放以及平移 本文旨在实现通过D3DXMatrixTransformation2D函数实现位图的旋转,缩放以及平移操作,但是具体的原理部分会在后面进一步的探 ...

  10. OpenCV调整彩色图像的饱和度和亮度

    问题 如何调整彩色图像的饱和度和亮度 解决思路 详细步骤: 将RGB图像值归一化到[0, 1] 然后使用函数cvtColor进行色彩空间的转换 接下来可以根据处理灰度图像对比度增强伽马变换或者线性变换 ...