SpingMvc复杂参数传收总结
Posted java从心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpingMvc复杂参数传收总结相关的知识,希望对你有一定的参考价值。
每天进步一丢丢,连接梦与想
上一篇文章[]总结了简单传收参数,这一篇讲如何传收复杂参数,比如Long[] 、User(bean里面包含List)、User[]、List<User>
一.简单数组集合类
比如Long[],String[],List<User>
前端:
1.重复单个参数
//(1)普通URL GET
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 GET
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<User>
1.复杂实体类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){
}
2.复杂集合 User[]、List<User>
、List<Map<String,Object>
前端:
//用户
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复杂参数传收总结的主要内容,如果未能解决你的问题,请参考以下文章