前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpingMvc复杂参数传收总结

SpingMvc复杂参数传收总结

作者头像
KEN DO EVERTHING
发布2019-01-17 16:32:30
8580
发布2019-01-17 16:32:30
举报
文章被收录于专栏:KEN DO EVERTHINGKEN DO EVERTHING

点击上方“java从心”,设为星标

每天进步一丢丢,连接梦与想

上一篇文章[javaWeb传收参数方式总结]总结了简单传收参数,这一篇讲如何传收复杂参数,比如Long[] 、User(bean里面包含List)、User[]、List<User>、List<Map<String,Object>等几种复杂参数。

一.简单数组集合类

比如Long[],String[],List<User>等

前端:
1.重复单个参数
代码语言:javascript
复制
//(1)普通URL GET
http://localhost:8080/ajaxGet?id=1&id=2&id=3
代码语言:javascript
复制
//(2)Ajaxget方式 发送请求时等于(1)方式
    $.ajax({
        type: "GET",
        url: "http://localhost:8080/ajaxGet?id=1&id=2&id=3"
    });
代码语言:javascript
复制
//(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>
代码语言:javascript
复制
//(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:
代码语言:javascript
复制
//数组
public void ajaxGet(Long[] id){
}
代码语言:javascript
复制
//List集合
public void ajaxGet(@RequestParam("id") List<Long> id){
}
2.数组参数
前端:
代码语言:javascript
复制
//(1)普通URL GET
http://localhost:8080/ajaxGet?id[]=1&id[]=2&id[]=3
代码语言:javascript
复制
//(2)Form GET方式(Ajax异步表单提交) 发送请求时等于(1)方式
$.ajax({
        type: "GET",
        url: "http://localhost:8080/ajaxGet",
        data: {"id":[1,2,3]},
        contentType:'application/x-www-form-urlencoded'
    });
代码语言:javascript
复制
//(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:
代码语言:javascript
复制
//数组
public void ajaxGet(@RequestParam("id[]") Long[] id){
}
代码语言:javascript
复制
//List集合
public void ajaxGet(@RequestParam("id[]") List<Long> id){
}

其实以上两种都是一个道理,主要是看发送请求时 参数是id还是id[](可使用浏览器的F12开发者工具查看network请求),来决定后端使不使用@RequestParam("id[]")进行数据绑定

二.复杂实体类与集合

比如User(bean里面包含List)、User[]、List<User>、List<Map<String,Object>等,此种类型均使用Json提交

1.复杂实体类User

User实体类

代码语言:javascript
复制
public class User {  
    private String name;   
    private String pwd;  
    private List<User> customers;//属于用户的客户群 
    //省略getter/setter  
}
前端:
代码语言:javascript
复制
//用户
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:
代码语言:javascript
复制
public void ajaxPost(@ResponBody User user){
 }
2.复杂集合 User[]、List<User>、List<Map<String,Object>
前端:
代码语言:javascript
复制
//用户
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:
代码语言:javascript
复制
public void ajaxPost(@ResponBody User[] user){
 }
代码语言:javascript
复制
public void ajaxPost(@ResponBody List<User> user){
 }
代码语言:javascript
复制
public void ajaxPost(@ResponBody List<Map<String,Object>> userMap){
 }
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.简单数组集合类
  • 前端:
    • 1.重复单个参数
      • 后端SpringMvc:
      • 2.数组参数
        • 前端:
          • 后端SpringMvc:
          • 二.复杂实体类与集合
            • 1.复杂实体类User
              • 前端:
                • 后端SpringMvc:
                  • 2.复杂集合 User[]、List<User>、List<Map<String,Object>
                    • 前端:
                      • 后端SpringMvc:
                      相关产品与服务
                      云开发 CLI 工具
                      云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档