news 2026/6/10 1:46:41

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/6/9 1:05:34

零基础学习lvgl界面编辑器:超详细版安装与配置指南

从零开始玩转LVGL界面设计&#xff1a;手把手教你用可视化工具高效开发嵌入式UI 你有没有遇到过这样的场景&#xff1f; 想给STM32或ESP32加个漂亮的屏幕&#xff0c;结果一上来就要写一堆 lv_obj_create() 、 lv_label_set_text() ……改个按钮位置得重新编译下载&#…

作者头像 李华
网站建设 2026/6/9 1:40:20

I2S协议物理层解析:一文说清数据同步与时钟关系

I2S协议物理层解析&#xff1a;一文说清数据同步与时钟关系在数字音频的世界里&#xff0c;信号的“纯净”与“准确”是工程师永恒的追求。无论是你在智能音箱中听到的一声清澈人声&#xff0c;还是车载音响播放的高保真交响乐&#xff0c;背后都离不开一套精密的通信机制——I…

作者头像 李华
网站建设 2026/6/9 1:22:26

救命神器10个AI论文软件,助本科生轻松搞定毕业论文!

救命神器10个AI论文软件&#xff0c;助本科生轻松搞定毕业论文&#xff01; AI 工具如何成为论文写作的得力助手 在当今信息爆炸的时代&#xff0c;本科生撰写毕业论文的压力与日俱增。无论是选题、资料收集、结构搭建&#xff0c;还是语言润色和降重处理&#xff0c;每一个环节…

作者头像 李华
网站建设 2026/6/9 22:52:01

操作指南:定位并安装缺失的libcudart.so.11.0共享库文件

如何解决 libcudart.so.11.0 缺失问题&#xff1a;从报错到实战修复 你有没有在运行 PyTorch 或 TensorFlow 脚本时&#xff0c;突然被这样一行错误拦住去路&#xff1f; ImportError: libcudart.so.11.0: cannot open shared object file: No such file or directory别急…

作者头像 李华
网站建设 2026/6/9 21:32:01

救命神器!8款AI论文软件测评:研究生毕业论文痛点全解

救命神器&#xff01;8款AI论文软件测评&#xff1a;研究生毕业论文痛点全解 2026年AI论文工具测评&#xff1a;为何要关注这些“救命神器” 在研究生阶段&#xff0c;撰写毕业论文不仅是学术能力的体现&#xff0c;更是时间与精力的巨大挑战。从选题构思到文献检索&#xff0c…

作者头像 李华