SpingMvc复杂参数传收总结
上一篇文章[javaWeb传收参数方式总结]总结了简单传收参数,这一篇讲如何传收复杂参数,比如Long[] 、User(bean里面包含List)、User[]、List、List<Map<String,Object>等几种复杂参数。
一.简单数组集合类
比如Long[],String[],List等
前端:
1.重复单个参数
//(1)普通
http://localhost:8080/ajaxGet?id=1&id=2&id=3
//(2)Ajaxget方式 发送请求时等于(1)方式
$.ajax({
type: "GET",
url: "http://localhost:8080/ajaxGet?id=1&id=2&id=3"
});
//(3)Form表单GET方式 发送请求时等于(1)方式
<form id="fromGet" action="fromGet" method="GET">
<input type="text"name="id" value="1">
<input type="text"name="id" value="2">
<input type="text"name="id" value="3">
</form>
//(4)Form表单POST方式
//发送请求参数会被拼接成 id=1&id=2&id=3 存储在请求体中
<form id="fromGet" action="fromGet" method="POST">
<input type="text"name="id" value="1">
<input type="text"name="id" value="2">
<input type="text"name="id" value="3">
</form>
后端SpringMvc:
//数组
public void ajaxGet(Long[] id){
}
//List集合
public void ajaxGet(@RequestParam("id") List<Long> id){
}
2.数组参数
前端:
//(1)普通url
http://localhost:8080/ajaxGet?id[]=1&id[]=2&id[]=3
//2.Form GET方式(Ajax异步表单提交) 发送请求时等于(1)方式
$.ajax({
type: "GET",
url: "http://localhost:8080/ajaxGet",
data: {"id":[1,2,3]},
contentType:'application/x-www-form-urlencoded'
});
//(3)Form POST方式(Ajax异步表单提交)
//发送请求参数会被拼接成 id[]=1&id[]=2&id[]=3 存储在请求体中
$.ajax({
type: "POST",
url: "http://localhost:8080/ajaxPost",
data: {"id":[1,2,3]},
contentType:'application/x-www-form-urlencoded'
});
后端SpringMvc:
//数组
public void ajaxGet(@RequestParam("id[]") Long[] id){
}
//List集合
public void ajaxGet(@RequestParam("id[]") List<Long> id){
}
其实以上两种都是一个道理,主要是看发送请求时 参数是id还是id[](可使用浏览器的F12开发者工具查看network请求),来决定后端使不使用@RequestParam(“id[]”)进行数据绑定
二.复杂实体类与集合
比如User(bean里面包含List)、User[]、List、List<Map<String,Object>等,此种类型均使用Json提交
1.复杂实体类User
User实体类
//User实体类
public class User {
private String name;
private String pwd;
private List<User> customers;//属于用户的客户群
//省略getter/setter
}
前端:
//用户
var user = {};
user.name = "李刚";
user.pwd = "888";
//客户
var customerArray = new Array();
customerArray.push({name: "李四",pwd: "123"});
customerArray.push({name: "张三",pwd: "332"});
user. customers = customerArray;
$.ajax({
type: "POST",
url: "http://localhost:8080/ajaxPost",
data: JSON.stringify(user),
contentType:'application/json;charset=utf-8'
});
后端SpringMvc:
public void ajaxPost(@ResponBody User user){
}
前端:
//用户
var userList = new Array();
userList.push({name: "李四",pwd: "123"});
userList.push({name: "张三",pwd: "332"});
$.ajax({
type: "POST",
url: "http://localhost:8080/ajaxPost",
data: JSON.stringify(userList),
contentType:'application/json;charset=utf-8'
});
后端SpringMvc:
public void ajaxPost(@ResponBody User[] user){
}
public void ajaxPost(@ResponBody List<User> user){
}
public void ajaxPost(@ResponBody List<Map<String,Object>> userMap){
}
THANDKS
- End -
一个立志成大腿而每天努力奋斗的年轻人
伴学习伴成长,成长之路你并不孤单!
SpingMvc复杂参数传收总结的更多相关文章
- javaWeb传收参数方式总结
有时候,我真会被传参搞得头晕,这样传要怎么接收,那样传又要怎么接收? get可以json吗?什么是json方式提交?等等问题,已困扰我许久 所以,在此想做个总结,整理一下思绪,不再为传收参烦恼!如有错 ...
- Jmeter----A接口response中body的某一个参数传递给B接口request的body中使用(参数的传递)
示例:将接口"获取待办列表"response中body的id值传递给接口"删除待办"request的body中使用: 操作步骤如下: 第一步:给"获取 ...
- 通过BeanShell获取UUID并将参数传递给Jmeter
有些HTTPS请求报文的报文体中包含由客户端生成的UUID,在用Jmeter做接口自动化测试的时候,因为越过了客户端,直接向服务器端发送报文,所以,需要在Jmeter中通过beanshell获取UUI ...
- C/C++语言中的函数参数传参三种对比
学了很长时间C/C++有时指针方面还是有点乱. 希望大神发现如果下面有不对的地方请指出.我发现之所以我乱就是因为中文表述不准确的问题,比如 ,地址值和地址 #include <iostream& ...
- java基础之对象当做参数传进方法的堆栈内存解析
值类型当做参数传进方法: 引用类型对象当做参数传进方法: String字符串当做参数传进方法:
- Delphi线程类 DIY(把类指针作为参数传进去,就可以执行类里面的方法啦)
Delphi 封装了一个很强大的线程类 TThread, 我们也自己动手制作一个简单的线程类 首先Type一个类 type TwwThread = class constructor Create; ...
- C#程序调用CMD执行命令,将参数传递给cmd.exe
proc.StartInfo.Arguments = "/c ping 10.2.2.125"; C#程序调用CMD执行命令 将参数传递给cmd.exe的(Passing an a ...
- spring boot 参数传递(spring boot 参数传数 arg0 每一个参数 arg0#{arg0},arg1 #{arg1})
spring boot 参数传数 arg0 每一个参数 arg0#{arg0},arg1 #{arg1} @Select("select * from sys_user where nam ...
- spingMVC异步上传文件
框架是个强大的东西,一般你能想到的,框架都会帮你做了,然后只需要会用就行了,spingmvc中有处理异步请求的机制,而且跟一般处理请求的方法差别不大,只是多了一个注解:spingmvc也可以将stri ...
随机推荐
- 【2016常州一中夏令营Day4】
小 W 走迷宫[问题描述]小 W 被小 M 困在了一个方格矩阵迷宫里,矩阵边界在无穷远处,我们做出如下的假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b. 走过的格子立即塌陷无 ...
- 使用eclipse运行maven web项目 插件/非插件
一.使用插件 tomcat 8.5 tomcat-users.xml中添加这一行就ok <user username="admin" password="admin ...
- Jquery为动态添加的元素添加事件
$("tbody").on("click","button", function() { var text = $(this).parent ...
- Iterator接口介绍(迭代器)
第一步 第二步 第二步用while 第二步用for循环(了解) 备注:
- 小白进阶之路-python基本运算符
1.算数运算符(+.-.*./.%.**(幂 二次方.三次方).//(地板除,返回商的整数部分) 2.比较运算符(==.!=.<>(不等于).>.<.>=.<=) ...
- $Noip2016/Luogu2822$ 组合数问题
$Luogu$ 看这题题解的时候看到一个好可爱的表情(●'◡'●)ノ♥ $Sol$ 首先注意到这题的模数是$k$.然而$k$并不一定是质数,所以不能用$C_n^m=\frac{n!}{m!(n-m)! ...
- Git 连接github
大概如下: 详细如下:如果使用本文命令,请仔细选择,因为添加一些相关命令以供参考. 1 本地仓库 1.1 创建git 仓库 git init # 初始化本地仓库 git --version # 查看G ...
- samba服务器红帽5.4搭建,亲测可用!!!
samba服务器搭建 服务器的环境 红帽5.4 vm15 挂载光盘 mount mount -t iso9660 设备目录 /mnt 表示挂载 软件包安装 samba服务器只需安装两个软件包,先找到软 ...
- UML之类之间的关系
UML 简介 统一建模语言(Unified Modeling Language,UML) 作用:对软件系统进行说明 如果说软件系统是一本小说的话,那么 UML 就是将小说动漫化. 也许你看过这本小说, ...
- 原生javascript 元素依次掉落及上升
一.实现原理: ① 通过onoff开关,判断元素是往下走 还是往上走,并在每次清除定时器后,把onoff 设为 !onoff,以便下次点击做判断 ②move函数的运用 二.代码 <!DOCTYP ...