springmvc接收数组类型参数
直接在方法上使用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接收数组类型参数的更多相关文章
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...
- Springmvc接收数组参数
Springmvc接收数组参数,必须添加@RequestParam注解 注解格式@RequestParam(value="前端参数名[]") 示例: controller端的代码 ...
- springmvc接收date类型参数
springmvc在表单提交接收date类型参数的时候会报错:Cannot convert value of type [java.lang.String] to required type [jav ...
- ajax传数组到后台,后台springmvc接收数组参数
var ids= new Array(); $("input[class='detailCheck']:checked").each(function(i,k){ var ...
- angularJS前台传list数组,后台springMVC接收数组
有时候需要在前台自定义对象,然后把对象封装在list中,在传送到后台,这样的思想也比较合理 1. 前台代码 $scope.saveScore = function () { $scope.userSc ...
- springmvc接收数组方式总结
1.接受正常的数组 如param1=aaa¶m1=bbb¶m1=3 对于这种,在实体参数中,使用String param1[] 这种参数既可以获取数组的值 2.接受数组 ...
- 【blog】SpringMVC接收数组
页面 var idsArray = new Array(); idsArray.push(userId); SpringMVC @RequestParam(value = "ids[]&qu ...
- springmvc接收前台(如ajax)传来的数组list,set等图文详解
ref:https://blog.csdn.net/wabiaozia/article/details/50803581 前言: 相信很人都被springmvc接收数组问题折磨过,查过几个解决 ...
- spring mvc接收数组
(一)前言 对于springmvc接收数组的问题啊,我试验过几次,但是了有时候成功了,有时候失败了,也不知道为啥的,然后现在又要用到了,所以打算具体看看到底怎么回事,但是了我实验成功了顺便找了好多资料 ...
随机推荐
- 20155331 丹增旦达 网络攻防 Exp2后门原理与实践
20155331 丹增旦达<网络攻防>Exp2后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启 ...
- 【WPF】给TextBox添上Label
原文:[WPF]给TextBox添上Label 引言 在客户端开发中,要说出现频率大的控件,必定有TextBox的身影.然而在TextBox的旁边通常得有个基友Label,形影不离.为此,我们 ...
- 蒙提霍尔游戏 python 模拟
本文使用蒙特卡罗方法验证蒙提霍尔游戏的结论. 以下代码,本人原创! 完整代码 import random # 蒙提霍尔游戏 def play_game(strategy='nonchange'): # ...
- 01-BAT算法特训班
- ubuntu 桌面操作系统安装WPS办公软件的方法
1.打开ubuntu系统自带的firefox软件 2.打开linux.wps.cn,并点击立即下载 3. 点击下载deb安装包 4.进入下载目录,sudo dpkg -i wps-office_10. ...
- 封装之property,多态,鸭子类型,classmethod与staticmethod
一.封装之Property prooerty是一种特殊的属性,访问时他会执行一段功能(函数)然后返回 '''BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属 ...
- Ubuntu 开机自动启动
# 开机启动 2018-12-13在etc目录下建立loraserver.sh文件,[**注意**:设置脚本的运行属性]其内容为 #!/bin/bash cd /home/zqkj/loraserve ...
- 【原创】CA证书申请+IIS配置HTTPS+默认访问https路径
一.CA证书申请 (一). 新StartSSL注册帐号 1. StartSSL官网 官方网站:https://www.startssl.com/ 2. 进入到StartSSL后,直接点击注 ...
- FUNMVP:几张图看懂区块链技术到底是什么?(转载)
几张图看懂区块链技术到底是什么? 本文转载自:http://www.cnblogs.com/behindman/p/8873191.html “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人 ...
- Linux内核分析作业 NO.5
拔掉系统调用的三层皮(下) 于佳心 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 ...