news 2026/3/15 6:32:29

SpringMVC——json数据传递参数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringMVC——json数据传递参数

目录

  • json数组
  • json对象(POJO)
  • json数组(POJO)
  • 注意

json数组

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>springmvc_04_request_param</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>springmvc_04_request_paramMavenWebapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build></project>

ServletContainersInitConfig

package com.baidu.config;importorg.springframework.web.filter.CharacterEncodingFilter;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;importjavax.servlet.Filter;publicclassServletContainersInitConfigextendsAbstractAnnotationConfigDispatcherServletInitializer{protectedClass<?>[]getRootConfigClasses(){returnnewClass[0];}protectedClass<?>[]getServletConfigClasses(){returnnewClass[]{SpringMvcConfig.class};}protectedString[]getServletMappings(){returnnewString[]{"/"};}protectedFilter[]getServletFilters(){CharacterEncodingFilterfilter=newCharacterEncodingFilter();filter.setEncoding("UTF-8");returnnewFilter[]{filter};}}

SpringMvcConfig

@EnableWebMvc注解功能强大,整合了多个功能,这里只用到了json数据进行自动类型转换功能

UserController

package com.baidu.controller;importcom.baidu.domain.User;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.ResponseBody;importjava.util.Arrays;importjava.util.List;@ControllerpublicclassUserController{@RequestMapping("/listParamForJson")@ResponseBodypublicStringlistParamForJson(@RequestBodyList<String>likes){System.out.println("json ==> "+likes);return"'module':'list common for json param'}";}// @RequestMapping("/commonParam")// @ResponseBody// public String commonParam(String name, int age) {// System.out.println("name=>" + name);// System.out.println("age=>" + age);// return "{'module':'common param'}";// }// // 普通参数:请求参数名与形参名不同// @RequestMapping("/commonParamDifferentName")// @ResponseBody// public String commonParamDifferentName(@RequestParam("name") String userName, int age) {// System.out.println("userName=>" + userName);// System.out.println("age =>" + age);// return "{'module':'common param different name'}";// }////// @RequestMapping("/pojoParam")// @ResponseBody// public String pojoParam(User user){// System.out.println(" user ==> " + user);// return "{'module':'pojo param' }" ;// }// @RequestMapping("/arrayParam")// @ResponseBody// public String arrayParam(String[] likes){// System.out.println("likes ==> " + Arrays.toString(likes));// return "{'module':'array param'}";// }// @RequestMapping("/listParam")// @ResponseBody// public String listParam(@RequestParam List<String> likes){// System.out.println("likes ===> " + likes);// return "{'module': 'list param' }";// }}

@RequestBody是将请求中请求体所包含的数据传递给请求参数,此注解一个处理器方法只能使用一次

json对象(POJO)

User

package com.baidu.domain;publicclassUser{privateStringname;private int age;privateAddressaddress;publicUser(){}publicUser(Stringname,int age,Addressaddress){this.name=name;this.age=age;this.address=address;}/** * 获取 * @return name */publicStringgetName(){returnname;}/** * 设置 * @param name */publicvoidsetName(Stringname){this.name=name;}/** * 获取 * @return age */public intgetAge(){returnage;}/** * 设置 * @param age */publicvoidsetAge(int age){this.age=age;}/** * 获取 * @return address */publicAddressgetAddress(){returnaddress;}/** * 设置 * @param address */publicvoidsetAddress(Addressaddress){this.address=address;}publicStringtoString(){return"User{name = "+name+", age = "+age+", address = "+address+"}";}}

Address

package com.baidu.domain;publicclassAddress{privateStringprovince;privateStringcity;publicAddress(){}publicAddress(Stringprovince,Stringcity){this.province=province;this.city=city;}/** * 获取 * @return province */publicStringgetProvince(){returnprovince;}/** * 设置 * @param province */publicvoidsetProvince(Stringprovince){this.province=province;}/** * 获取 * @return city */publicStringgetCity(){returncity;}/** * 设置 * @param city */publicvoidsetCity(Stringcity){this.city=city;}publicStringtoString(){return"Address{province = "+province+", city = "+city+"}";}}

json数组(POJO)

注意

@RequestBody@RequestParam区别

前者用于接收json数据
后者用于接收url地址传参,表单传参

后期开发中,发送json格式数据为主,前者应用较广
如果发送非json格式数据,选用后者

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 0:42:54

无源蜂鸣器声音生成原理:结合PWM脉冲解析

无源蜂鸣器是如何“唱歌”的&#xff1f;从PWM脉冲讲起你有没有想过&#xff0c;家里门铃那声清脆的“叮咚”&#xff0c;或是微波炉加热结束时的“嘀——”&#xff0c;背后其实藏着一个简单的物理原理&#xff1f;这些声音大多来自一种叫无源蜂鸣器的小元件。它不像喇叭那样能…

作者头像 李华
网站建设 2026/3/13 19:27:31

一文说清上位机与下位机通信中的延时匹配问题

上位机与下位机通信为何“卡顿”&#xff1f;一文讲透延时匹配的底层逻辑与实战策略你有没有遇到过这样的场景&#xff1f;明明上位机程序写得逻辑清晰、界面流畅&#xff0c;可一连上下位机&#xff0c;数据就开始跳变、指令响应迟缓&#xff0c;甚至偶尔“失联”。重启&#…

作者头像 李华
网站建设 2026/3/14 6:47:32

RS485和RS232区别总结:抗干扰能力系统学习

RS485和RS232区别总结&#xff1a;抗干扰能力系统学习在工业现场&#xff0c;你有没有遇到过这样的问题&#xff1f;设备明明接好了线&#xff0c;通信协议也没写错&#xff0c;可数据就是时通时断&#xff0c;偶尔还冒出一堆乱码。排查半天&#xff0c;最后发现是串口选型不当…

作者头像 李华
网站建设 2026/3/12 22:23:57

一文说清COB封装LED灯珠品牌的核心性能对比

看懂COB灯珠怎么选&#xff1a;从Cree到国星&#xff0c;谁才是你项目的“真命天子”&#xff1f;照明行业里&#xff0c;COB&#xff08;Chip-on-Board&#xff09;封装LED灯珠早已不是新鲜词。但如果你还在凭价格或品牌名气拍脑袋选型&#xff0c;那可能已经为后续的光衰、色…

作者头像 李华
网站建设 2026/3/9 15:00:53

一文说清Multisim14.0在模拟信号处理中的应用

用Multisim14.0打通模拟信号处理的“任督二脉”你有没有过这样的经历&#xff1f;花了一周时间画好电路&#xff0c;焊好PCB&#xff0c;通电一试——没输出。换芯片、改电阻、调电源……折腾三天&#xff0c;最后发现是运放接反了反馈网络。在模拟电路的世界里&#xff0c;这种…

作者头像 李华
网站建设 2026/3/9 12:23:21

qthread实时性优化技巧实战分享

QThread实时性调优实战&#xff1a;从理论到工业级音频系统的精准控制你有没有遇到过这样的情况&#xff1f;明明代码逻辑清晰&#xff0c;硬件性能也够用&#xff0c;但系统就是“卡”在某个环节——音视频采集偶尔丢帧、控制指令响应延迟波动、高频数据处理出现抖动。尤其是在…

作者头像 李华