直接在方法上使用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 20155230《网络对抗技术》实验8:Web基础

    实践过程记录 1.Web前端HTML 首先用指令sudo apt-get install apache2下载apache,由于实验机已经安装好Apache,这里就不演示了,对于Apache使用的端口我 ...

  2. 20155334 网络对抗PC平台逆向破解(二)

    注入Shellcode并运行攻击 shellcode就是一段机器指令(code) 通常这段机器指令的目的是为获取一个交互式的shell(像linux的shell或类似windows下的cmd.exe) ...

  3. mfc CFileDialog类

    知识点: CFileDialog类 SetBitmap LoadImage 动态显示图片 一.CFileDialog类 构造函数 CFileDialog( BOOL bOpenFileDialog, ...

  4. 【HNOI2016】网络

    题面 题解 考虑整体二分. 定义整体二分函数solve(l, r, ql, qr)表示操作权值在\([l, r]\)中,对\([ql, qr]\)的询问进行二分. 这样的话check就会很简单,先按照 ...

  5. ElasticSearch查询 第一篇:搜索API

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  6. Asp.Net_Form验证跟授权

    配置文件的<system.web></system.web>结点下添加如下代码: <!--身份验证方式--> <authentication mode=&qu ...

  7. GitHubDesktop权限问题解决办法

    Desktop对于管理仓库非常方便.实用 很多人实用Desktop将仓库项目clone到本地 但是更新后同步时出现了如下权限错误: Error Authentication failed. You m ...

  8. 【MOOC EXP】Linux内核分析实验二报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000  [操作系统是如何工作的]   教学内 ...

  9. 《Linux内核设计与实现》Chapter 18 读书笔记

    <Linux内核设计与实现>Chapter 18 读书笔记 一.准备开始 一个bug 一个藏匿bug的内核版本 知道这个bug最早出现在哪个内核版本中. 相关内核代码的知识和运气 想要成功 ...

  10. [JSP] c:forEach 如何输出序号

    关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...