SpingMvc复杂参数传收总结

 更新时间:2023年08月09日 14:16:08   作者:KenDoEverthing  
这篇文章主要为大家介绍了SpingMvc复杂参数传收总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

上一篇文章[javaWeb传收参数方式总结]总结了简单传收参数,这一篇讲如何传收复杂参数

比如Long[] 、User(bean里面包含List)、User[]、List<User><user style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">、List<Map<String,Object>等几种复杂参数</user>。

简单数组集合类

比如Long[],String[],List<User><long style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">等</long>

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<User><user style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">、List<Map<String,Object>等,此种类型均使用Json提交</user>

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){
 }

以上就是SpingMvc复杂参数传收总结的详细内容,更多关于SpingMvc复杂参数传收的资料请关注脚本之家其它相关文章!

相关文章

  • Java使用agent实现main方法之前的实例详解

    Java使用agent实现main方法之前的实例详解

    这篇文章主要介绍了Java使用agent实现main方法之前的实例详解的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下
    2017-10-10
  • Springboot配置文件内容加密代码实例

    Springboot配置文件内容加密代码实例

    这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Spring Cloud Hystrix 线程池队列配置(踩坑)

    Spring Cloud Hystrix 线程池队列配置(踩坑)

    这篇文章主要介绍了Spring Cloud Hystrix 线程池队列配置(踩坑),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Mybatis-Plus雪花id的使用以及解析机器ID和数据标识ID实现

    Mybatis-Plus雪花id的使用以及解析机器ID和数据标识ID实现

    这篇文章主要介绍了Mybatis-Plus雪花id的使用以及解析机器ID和数据标识ID实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 解决springboot环境切换失效的问题

    解决springboot环境切换失效的问题

    这篇文章主要介绍了解决springboot环境切换失效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解Eclipse安装SVN插件的两种方法

    详解Eclipse安装SVN插件的两种方法

    这篇文章主要介绍了详解Eclipse 安装 SVN 插件的两种方法,详细的介绍了这两种安装方法,具有一定的参考价值,有兴趣的可以了解一下
    2018-01-01
  • SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤

    SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤

    这篇文章主要给大家介绍了SpringBoot结合dev-tool实现IDEA项目热部署的流程步骤,文章通过图文介绍的非常详细,对大家的学习有一定的帮助,需要的朋友可以参考下
    2023-10-10
  • 几个好用Maven镜像仓库地址(小结)

    几个好用Maven镜像仓库地址(小结)

    这篇文章主要介绍了几个好用Maven镜像仓库地址(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Spring你不知道的一种解耦模式

    Spring你不知道的一种解耦模式

    本文介绍一种方法,服务定位模式Service Locator Pattern来解决,它帮助我们消除紧耦合实现及其依赖性,并提出将服务与其具体类解耦
    2023-01-01
  • 使用Java实现一个能保留计算过程的计算器

    使用Java实现一个能保留计算过程的计算器

    计算器是我们日常生活中常用的工具之一,它能够进行基本的数学运算,如加法、减法、乘法和除法,而在设计一个计算器时,我们可以通过使用Java编程语言来实现一个简单的控制台计算器,并且让它能够保留计算过程,文中有详细的代码示例,需要的朋友可以参考下
    2023-11-11

最新评论