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接收数组的问题啊,我试验过几次,但是了有时候成功了,有时候失败了,也不知道为啥的,然后现在又要用到了,所以打算具体看看到底怎么回事,但是了我实验成功了顺便找了好多资料 ...
随机推荐
- Python3入门(七)——模块
在Python中,一个.py文件就称之为一个模块(Module).(例如main.py就称之为main模块) 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package). ...
- 从零开始学cookie(个人笔记)——一
未完待续 参考链接 : cookie (储存在用户本地终端上的数据) 关键词: cookie session HTTP 小文本文件 解释 Cookie 是由 Web 服务器保存在用户浏览器上的小文本文 ...
- python 字符串的split()函数详解
split翻译为分裂. split()就是将一个字符串分裂成多个字符串组成的列表. split()当不带参数时以空格进行分割,当代参数时,以该参数进行分割. //---当不带参数时 example: ...
- mfc c++字符串类与 流输出
一.命名空间 所谓命名空间(namespace),是指标识符的各种可见范围.C++标准程序库中的所有标识符都被定义于一个名为std的命名空间(namespace)中.而我们要使用的string类也是一 ...
- python 回溯法 子集树模板 系列 —— 13、最佳作业调度问题
问题 给定 n 个作业,每一个作业都有两项子任务需要分别在两台机器上完成.每一个作业必须先由机器1 处理,然后由机器2处理. 试设计一个算法找出完成这n个任务的最佳调度,使其机器2完成各作业时间之和达 ...
- Spring+SpringMVC+MyBatis整合基础篇(二)牛刀小试
前言 承接上文,该篇即为项目整合的介绍了. 废话不多说,先把源码和项目地址放上来,重点要写在前面. 项目展示地址,点这里http://ssm-demo.13blog.site,账号:admin 密码: ...
- .NET Core容器化开发系列(一)——Docker里面跑个.NET Core
前言 博客园中已经有很多如何在Docker里面运行ASP.NET Core的介绍了.本篇主要介绍一些细节,帮助初学的朋友更加深入地理解如何在Docker中运行ASP.NET Core. 安装Docke ...
- identityServer4 中的概念(Scope,claim)
在IdentityServer中好多地方出现这几个词,这单词的解释也有好多大神解释过: chaim: ASP.NET Core 之 Identity 入门(一),这个是asp.net identity ...
- Asp.Net_Mvc3.5语法_<%%>的用法
一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或 者javascript代码,而在asp.net中用的是.net平台下支持的语言.特别 注意:服务 ...
- Python+opencv 图像拼接
1.http://www.cnblogs.com/skyfsm/p/7411961.html ,给出了很好地拼接算法实现 2.由于不是Python的,所以简单做了一些翻译转成Python+opencv ...