直接在方法上使用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. 大数据入门第二十五天——elasticsearch入门

    一.概述 推荐路神的ES权威指南翻译:https://es.xiaoleilu.com/010_Intro/00_README.html 官网:https://www.elastic.co/cn/pr ...

  2. AngularJS+bootstrap-switch 实现开关控件

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. mfc 虚函数

    知识点 类虚函数概念 类虚函数定义virtual 一.虚函数 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数. 二.虚函数定义 定义:在某基类中声明为 virtual 并在一个或多个派 ...

  4. 在sourceinsight中添加快速注释 Ctrl+/

    1.搜索文件:utils.em(C:\Program Files (x86)\Source Insight 3)2.用sourceinsight打开文件:utils.em3.在文件末尾添加下面代码 m ...

  5. ScreenToGif 代码分析

    ScreenToGif项目由四个文件夹组成: Files 存放协议文件 GifRecorder 存放gif编码器代码 ScreenToGif 存放主代码 Other 存放Hooktest和Transl ...

  6. 洛咕3312 [SDOI2014]数表

    洛咕3312 [SDOI2014]数表 终于独立写出一道题了...真tm开心(还是先写完题解在写的) 先无视a的限制,设\(f[i]\)表示i的约数之和 不妨设\(n<m\) \(Ans=\su ...

  7. 设计模式 笔记 组合模式 Composite

    //---------------------------15/04/16---------------------------- //Composite 组合模式----对象结构型模式 /* 1:意 ...

  8. 虚拟机console基础环境部署——工作目录准备

    1. 概述2. 相关约定2.1 删除旧文件2.2 创建全局共享文件目录2.3 创建全局软件安装目录2.4 创建数据放置目录3. 总结 1. 概述 上述博客中,已经为console最小化安装了操作系统. ...

  9. HTML 脚本 (Script) 实例

    1.JavaScript 使 HTML 页面具有更强的动态和交互性.HTML script 元素<script> 标签用于定义客户端脚本,比如 JavaScript. script 元素既 ...

  10. Jmeter+ant+Jenkins构建接口自动化测试

    1.已写好jmeter脚本 2.安装ant并将ant-jmeter-1.1.1.jar文件放入ant/lib目录,用于调用jmeter 3.修改jmeter的jmeter.properties文件(将 ...