news 2026/5/30 13:34:25

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/5/19 17:14:05

机器学习:强化学习算法

摘要&#xff1a;强化学习是机器学习的一个分支&#xff0c;通过智能体与环境的交互来学习最优策略。核心要素包括智能体、环境、状态、动作、奖励和策略。智能体通过试错过程&#xff0c;根据环境反馈的奖励调整策略&#xff0c;目标是最大化长期累积奖励。主要算法包括基于价…

作者头像 李华
网站建设 2026/5/29 16:46:10

es连接工具在日志分析系统中的核心作用:一文说清

日志系统里的“搬运工”没那么简单&#xff1a;揭秘 es连接工具的实战价值你有没有遇到过这种情况——线上服务突然报错&#xff0c;你急着查日志定位问题&#xff0c;结果发现Kibana里半天刷不出数据&#xff1f;或者好不容易查到了日志&#xff0c;字段全是乱的&#xff0c;s…

作者头像 李华
网站建设 2026/5/25 13:32:55

2026.1.9

加密技术PKI&#xff08;公钥基础设施&#xff09;通过使用公钥技术和数字签名来确保信息安全PKI体系能够实现的功能身份验证数据完整性数据机密性操作的不可否认性对称加密&#xff1a;用相同的密钥进行加密和解密。不安全&#xff0c;但处理速度快非对称加密&#xff1a;使用…

作者头像 李华
网站建设 2026/5/30 13:32:48

PyTorch 2.5零基础教程:云端GPU免配置,1小时1块快速上手

PyTorch 2.5零基础教程&#xff1a;云端GPU免配置&#xff0c;1小时1块快速上手 引言&#xff1a;为什么选择云端PyTorch&#xff1f; 作为一名大学生&#xff0c;当你需要完成深度学习课程项目时&#xff0c;最头疼的往往不是算法本身&#xff0c;而是环境配置。传统PyTorch…

作者头像 李华
网站建设 2026/5/30 13:30:13

es客户端工具全文检索图解说明:match与multi_match用法

从零搞懂 Elasticsearch 全文检索&#xff1a;match和multi_match到底怎么用&#xff1f;你有没有遇到过这种情况——用户在搜索框里输入“苹果手机”&#xff0c;结果系统却把卖水果的页面排到了前面&#xff1f;或者搜“自动驾驶特斯拉”时&#xff0c;标题明明写着相关内容的…

作者头像 李华
网站建设 2026/5/30 13:32:27

超详细版AUTOSAR OS任务调度机制:深度剖析原理

深入AUTOSAR OS任务调度&#xff1a;从原理到实战的系统性解析在现代汽车电子控制单元&#xff08;ECU&#xff09;中&#xff0c;一个小小的控制器可能同时运行着数十个任务——从读取传感器信号、执行发动机喷油逻辑&#xff0c;到处理CAN通信、响应紧急制动请求。这些任务必…

作者头像 李华