广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springmvc参数为对象,数组的操作
  • 111
分享到

springmvc参数为对象,数组的操作

2024-04-02 19:04:59 111人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录参数为对象1、提交表单2、表单序列化,使用ajax提交3、也可以这样写4、如果结构复杂,使用@RequestBody5、传递数组springMVC接受复杂对象(对象数组)前端:后

参数为对象

1、提交表单

2、表单序列化,使用ajax提交


var data = $("#addFORM").serialize();
$.ajax({
         url : "addReportDo",   //请求url
         type : "POST",  //请求类型  post|get
         data : data,
         dataType : "text",  //返回数据的 类型 text|JSON|html--
         success : function(result){  //回调函数 和 后台返回的 数据
             alert(result);
         }
     });

3、也可以这样写


     var data = {
         title: $("#title").val(),
         note: $("#note").val()
     };

4、如果结构复杂,使用@RequestBody

需要引用jackson


<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.5</version>
</dependency>
 
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.5</version>
</dependency>

springmvc.xml配置


<!--Spring3.1开始的注解 HandlerAdapter -->
<bean class="org.springframework.WEB.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <!-- json转换器 -->
    <property name="messageConverters">
        <list>
            <ref bean="mappingJackson2HttpMessageConverter" />
        </list>
    </property>
</bean>
 
<bean id="mappingJackson2HttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>text/html;charset=UTF-8</value>
            <value>text/json;charset=UTF-8</value>
            <value>application/json;charset=UTF-8</value>
        </list>
    </property>
</bean>

js写法


var Goods1 = {
    goodsNumber: "001",
    goodsName: "商品A"
}
var goods2 = {
    goodsNumber: "002",
    goodsName: "商品B"
}
var goodsList = [goods1,goods2];
var data = {
    title: $("#title").val(),
    note: $("#note").val(),
    goodsList: goodsList
};
console.log(data);
$.ajax({
    url : "addReportDo",   //请求url
    type : "POST",  //请求类型  post|get
    data : JSON.stringify(data),
    contentType : "application/json",
    dataType : "text",  //返回数据的 类型 text|json|html--
    success : function(result){  //回调函数 和 后台返回的 数据
        alert(result);
    }
});

注意ajax的两个属性,data属性变为JSON.stringify(data),增加contentType属性。

controller代码写法


@ResponseBody
@RequestMapping("addReportDo")
public String addReportDo(@RequestBody Report report){
    System.out.println(report);
    return "ok";
}

在参数前面加上@RequestBody即可。

5、传递数组

js写法


var array = ["a","b","c"];
var data = {
    array : array
};
console.log(data);
$.ajax({
    url : "addReportDo",   //请求url
    type : "POST",  //请求类型  post|get
    data : data,
    dataType : "text",  //返回数据的 类型 text|json|html--
    success : function(result){  //回调函数 和 后台返回的 数据
        alert(result);
    }
});

controller写法


@ResponseBody
@RequestMapping("addReportDo")
public String addReportDo(@RequestParam("array[]")  String[] array){
    System.out.println(Arrays.toString(array));
    return "ok";
}

也可以用List接收


@ResponseBody
@RequestMapping("addReportDo")
public String addReportDo(@RequestParam("array[]") List<String> list){
   System.out.println(list);
   return "ok";
}

springmvc接受复杂对象(对象数组)

前端:

将请求头改为


contentType:"application/json;charset=UTF-8"

后端:

自定义一个对象,将参数封装进该对象中


@Data
public class CaseBodyEntity {
    String token;
    CaseBasicModel caseBasic;
    String[] keyWords;
    CaseInsurantAndProductModel[] caseInsurantAndProductModels;
    CaseExperienceModel[] caseExperiences;
    CaseAsseSSModel[] caseAssesses;
}

使用使用POST方式接受请求,@RequestBody接受请求参数,对象为自定义的接受对象


    @apiOperation("添加或更新案例,后台")
    @PostMapping("/addOrUpdateCase")
    public JSONObject addOrUpdateCase(
            @RequestBody CaseBodyEntity caseBodyEntity
    ) {
        ...
    }

@RequestBody和@RequestParam的区别

  • @RequestParam,主要处理contentType为application/x-www-form-urlencoded的数据(默认);@ResponseBody:主要处理contentType不为application/x-www-form-urlencoded的数据,例如:application/json;charset=UTF-8
  • @RequestParam:要指明前端传过来的参数名并与其对应;@RequestBody:直接对象接收,属性名要与前端传过来的数据的key值对应
  • 使用@RequestParam:Content-Type为application/x-www-form-urlencoded,参数在FormData中;使用@RequestBody:Content-Type为application/json,参数在Request PayLoad中
  • 可以使用多个@RequestParam获取数据;@RequestBody不能在同一个方法中出现多次

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springmvc参数为对象,数组的操作

本文链接: https://www.lsjlt.com/news/133089.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springmvc参数为对象,数组的操作
    目录参数为对象1、提交表单2、表单序列化,使用ajax提交3、也可以这样写4、如果结构复杂,使用@RequestBody5、传递数组springmvc接受复杂对象(对象数组)前端:后...
    99+
    2022-11-12
  • Spring Cloud Feign 使用对象参数的操作
    目录概述@RequestBody@SpringQueryMapQueryMapEncoder解决方案概述 Spring Cloud Feign 用于微服务的封装,通过接口代理的实现方...
    99+
    2022-11-13
  • 如何数组化操作对象php
    在PHP中,对象是非常重要的一种数据类型,但是在某些情况下,我们可能希望将对象转换成数组。数组操作比对象操作更加简单和方便,所以将对象数组化是非常有用的。本文将讨论如何在PHP中将对象数组化,以便于后续的操作和处理。一、使用类型转换(typ...
    99+
    2023-05-19
  • golang如何容忍空数组作为对象
    这篇文章主要为大家展示了“golang如何容忍空数组作为对象”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“golang如何容忍空数组作为对象”这篇文章吧。容忍空...
    99+
    2022-10-19
  • php数组转换为对象
    在PHP中,数组和对象是两种非常常见的数据类型。由于它们在表示数据时的不同特性,我们有时候需要将一个数组转换为一个对象。这里,我们将讨论如何在PHP中将一个数组转换为对象。首先,我们来看一下数组和对象的区别。数组是一组由键和值组成的有序集合...
    99+
    2023-05-23
  • php的array()操作的是数组还是对象
    在PHP中,array()操作的是数组,是允许对数组操作的函数,该函数的作用是创建数组;PHP支持单维和多维的数组,同时提供了用数据库查询结果来构造数组的函数,语法为“array(value1,value2,value3,etc.)”或者“...
    99+
    2022-07-11
    php
  • php怎么将对象转为字符串数组或对象数组
    PHP 是一种广泛应用于网络开发的脚本语言,它的灵活性和易用性使得更多的开发者选择使用它构建 Web 应用程序。在这些应用中,对象是一种常见的数据结构,经常需要将其转换为字符串数组或对象数组进行操作。在本文中,我们将讨论如何使用 PHP 将...
    99+
    2023-05-14
  • 解决springmvc关于前台日期作为实体类对象参数类型转换错误的问题
    页面报错:后台错误:Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthd...
    99+
    2023-05-31
    springmvc 类型转换 日期
  • php如何将数组转换为对象数组
    这篇文章主要介绍了php如何将数组转换为对象数组的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何将数组转换为对象数组文章都会有所收获,下面我们一起来看看吧。方法一:强制类型转换$arr =&n...
    99+
    2023-07-06
  • java数组怎么作为参数传递
    在Java中,数组作为参数传递的方式与普通的变量类似。你可以将一个数组作为方法的参数,然后在方法内部使用该数组进行操作。 下面是一个...
    99+
    2023-10-26
    java
  • 使用json对象转化为key,value的对象数组
    目录json对象转为key,value对象数组问题引出解决方式数组转换成json key-value形式eg1(数组中包含的是数组)eg2(数组中包含的是对象)json对象转为key...
    99+
    2022-11-13
  • php把对象转换为数组
    在PHP中,对象和数组是两种基本的数据类型。对象是面向对象编程(OOP)语言的重要组成部分,它允许我们将数据和函数组合在一起,以便使用时更方便。相比之下,数组是一种无序集合,可以容纳多种不同类型的数据。在某些情况下,我们可能需要将对象转换为...
    99+
    2023-05-23
  • SpringMVC参数传递之基本数据类型和复杂对象说明
    目录前言在了解下面参数如何传递前先记住两个结论下面可能会用到的一些类1.当简单接收基本数据类型和包装类型的时候前台发送json对象(application/x-www-form-ur...
    99+
    2022-11-13
    SpringMVC参数传递 SpringMVC基本数据类型 SpringMVC复杂对象
  • php对象转为数组的函数是哪个
    这篇文章将为大家详细讲解有关php对象转为数组的函数是哪个,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在php中,对象转为数组的函数是“get_object_vars()”。get_object_var...
    99+
    2023-06-15
  • JS解析url参数为json对象问题
    目录JS解析url参数为json对象使用正则表达式JS获取url参数以及json对象常用方法JS中json对象常用方法URL参数获取总结JS解析url参数为json对象 使用正则表...
    99+
    2023-01-17
    JS url参数 url参数为json对象 JS json对象
  • shell如何使用数组作为函数参数
    这篇文章主要介绍shell如何使用数组作为函数参数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!因工作需要,需要使用shell开发一些小工具,当使用数组作为函数参数时,发现只能传递数组的第一个元素,数组后面的元素不能...
    99+
    2023-06-09
  • 基于springmvc之常用注解,操作传入参数
    目录springmvc常用注解,操作传入参数@RequestParam@RequestBody@PathVariable@RequestHeader@CookieValue@Mode...
    99+
    2022-11-12
  • JavaScript对象与数组参考大全5(转)
    sup() 把字符串中的文本变成上标(superscript)字体()  toLowerCase() 把字符串中的文本变成小写  toUpperCase() 把字符串中的文本变成大写   B.28 submit对象  它是form对象的一个...
    99+
    2023-06-03
  • PHP返回对象转换为数组
    在PHP编程中,我们常常需要将一个对象转换为数组。这种需求通常是因为我们在编写Web应用程序时,从数据库或其他数据源中获取的数据通常都是以对象的形式返回的。为了处理这些数据并以便于阅读和处理的方式呈现它们,我们需要将这些对象转换为数组。PH...
    99+
    2023-05-19
  • java判断对象是否为数组
    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。用法: (推荐学习:java课程)Array.isArray(object)参数object:要检测的内容返回值返回值是布尔类型...
    99+
    2017-12-03
    java基础 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作