news 2026/4/16 9:18:35

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/4/11 10:24:52

一文说清Keil4在工业通信协议中的应用

深入工业通信一线&#xff1a;Keil4如何撑起嵌入式协议开发的“硬核”底座 在一条自动化生产线上&#xff0c;机械臂精准抓取、传送带有序流转、传感器实时反馈——这些看似流畅的动作背后&#xff0c;是一套严密的“神经系统”在默默支撑。这个系统的核心&#xff0c;不是某个…

作者头像 李华
网站建设 2026/3/30 23:07:51

RenderDoc使用指南

最终情况&#xff1a; 参考文档&#xff1a; https://renderdoc.org/docs/getting_started/index.html 本文章简要介绍了使用RenderDoc进行应用程序捕获与分析的基本流程。内容不涉及具体的功能细节&#xff08;相关说明可在其他文档中查阅&#xff09;&#xff0c;而是重点阐述…

作者头像 李华
网站建设 2026/4/1 9:21:34

USB接口入门全解析:数据传输机制认知

USB接口入门全解析&#xff1a;从数据传输机制到实战设计你有没有遇到过这样的情况&#xff1f;插上一个外接SSD&#xff0c;系统识别得很慢&#xff1b;或者用USB麦克风录音时频繁卡顿&#xff1b;甚至键盘偶尔失灵、需要拔插才能恢复。这些问题的背后&#xff0c;往往不是硬件…

作者头像 李华
网站建设 2026/4/1 8:24:56

hbuilderx制作网页结合Bootstrap响应式开发全面讲解

用 HBuilderX 搭配 Bootstrap 做响应式网页&#xff1a;从零开始的实战指南 你有没有遇到过这样的情况&#xff1f;辛辛苦苦写好的网页&#xff0c;在自己电脑上看得很完美&#xff0c;结果一拿到手机上就“炸了”——文字小得看不见、图片溢出屏幕、导航栏挤成一团……这其实…

作者头像 李华
网站建设 2026/4/15 22:30:45

HID键盘矩阵扫描原理:新手入门必看教程

HID键盘矩阵扫描原理&#xff1a;从零搞懂按键是如何被“看见”的你有没有想过&#xff0c;当你按下机械键盘上一个键时&#xff0c;电脑是怎么知道哪个键被按下的&#xff1f;看起来简单的一个动作&#xff0c;背后其实藏着一套精巧的工程设计——矩阵扫描&#xff08;Matrix …

作者头像 李华