0


【SpringMVC篇】5种类型参数传递&&json数据传参

🎊专栏【SpringMVC】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

在这里插入图片描述
在Web项目开发中,如何获取客户端传来的参数是非常重要的功能。SpringMVC提供了全面灵活的请求参数绑定机制,大大简化了参数处理。

本文将全面介绍SpringMVC的参数绑定功能。我们将学习获取基本类型参数、POJO参数、数组参数、集合参数的配置方法。SpringMVC自动将请求参数映射到处理方法的入参对象上,避免了我们手动解析request的繁琐。

更强大的是,SpringMVC还提供对JSON数据的自动转换支持。我们只需使用@RequestBody注解,就可以将JSON参数解析为目标对象。这种低侵入性的处理方式,令接口开发极为顺畅。

本文还将介绍对参数转换、格式化、校验的支持,让参数绑定更加丰富。这些知识点在实战项目中都大量应用,是掌握SpringMVC的基础。下面让我们深入学习,如虎添翼!

我们继续使用上一篇文章“探索请求映射路径,Get请求与Post请求”的代码

🌺普通参数

我们在UserController类中写入这一段代码

@RequestMapping("/commonParamDifferentname")@ResponseBodypublicStringcommonParamDifferentName(@RequestParam("name")String userName,int age){System.out.println("普通参数传递 userName ==> "+userName);System.out.println("普通参数传递 age ==> "+age);return"{'module':'common param different name'}";}

在这里插入图片描述

接收成功
在这里插入图片描述

🌺POJO参数

我们在User类中写入这一段代码

packagecom.example.domain;publicclassUser{privateString name;privateint age;privateAddress address;@OverridepublicStringtoString(){return"User{"+"name='"+ name +'\''+", age="+ age +", address="+ address +'}';}publicAddressgetAddress(){return address;}publicvoidsetAddress(Address address){this.address = address;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicintgetAge(){return age;}publicvoidsetAge(int age){this.age = age;}}

我们在UserController类中写入这一段代码

//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递@RequestMapping("/pojoParam")@ResponseBodypublicStringpojoParam(User user){System.out.println("pojo参数传递 user ==> "+user);return"{'module':'pojo param'}";}

在这里插入图片描述
运行成功
在这里插入图片描述

🌺嵌套pojo参数

适用于下面这种,可以反复写
在这里插入图片描述

我们在Address类中写入这一段代码

packagecom.example.domain;publicclassAddress{privateString province;privateString city;@OverridepublicStringtoString(){return"Address{"+"province='"+ province +'\''+", city='"+ city +'\''+'}';}publicStringgetProvince(){return province;}publicvoidsetProvince(String province){this.province = province;}publicStringgetCity(){return city;}publicvoidsetCity(String city){this.city = city;}}

在UserController里面写入这一段代码

@RequestMapping("/pojoContainPojoParam")@ResponseBodypublicStringpojoContainPojoParam(User user){System.out.println("pojo嵌套pojo参数传递 user ==> "+user);return"{'module':'pojo contain pojo param'}";}

继续测试
在这里插入图片描述

运行成功
在这里插入图片描述

🌺数组参数

@RequestMapping("/arrayParam")@ResponseBodypublicStringarrayParam(String[] likes){System.out.println("数组参数传递 likes ==> "+Arrays.toString(likes));return"{'module':'array param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🌺集合参数

@RequestMapping("/listParam")@ResponseBodypublicStringlistParam(@RequestParamList<String> likes){System.out.println("集合参数传递 likes ==> "+ likes);return"{'module':'list param'}";}

在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述

🎄json数据传参

我们在SpringMvcConfig里面加入这一段代码

@EnableWebMvc

,开启json数据自动转换

在这里插入图片描述

🛸json格式

我们找到上面 集合参数 的代码,把@RequestParam修改为@RequestBody

@RequestMapping("/listParamForJson")@ResponseBodypublicStringlistParamForJson(@RequestBodyList<String> likes){System.out.println("list common(json)参数传递 list ==> "+likes);return"{'module':'list common for json param'}";}

在这里插入图片描述

这里选择json,在下面写入数据
在这里插入图片描述

发现可以运行成功
在这里插入图片描述

🛸嵌套json格式

@RequestMapping("/pojoParamForJson")@ResponseBodypublicStringpojoParamForJson(@RequestBodyUser user){System.out.println("pojo(json)参数传递 user ==> "+user);return"{'module':'pojo for json param'}";}

在这里插入图片描述
运行成功

在这里插入图片描述

🛸集合格式

@RequestMapping("/listPojoParamForJson")@ResponseBodypublicStringlistPojoParamForJson(@RequestBodyList<User> list){System.out.println("list pojo(json)参数传递 list ==> "+list);return"{'module':'list pojo for json param'}";}

如果报错,重启一下就好了
在这里插入图片描述

在这里插入图片描述
运行成功
在这里插入图片描述
通过本文的学习,我们已经掌握了SpringMVC中多种参数获取和绑定的方式,这将帮助我们轻松实现接口的参数传递。当然实际应用中,我们还要注意安全性、效率、规范性等方面的优化。

SpringMVC参数绑定只是冰山一角,还有数据校验、全局处理、拦截器等知识点需要继续深入学习。此外,实际项目中可能还需要处理复杂业务场景。如果各位同学有任何疑问,请在评论区与我留言讨论。持之以恒,我们一定能成为SpringMVC的掌握者!
在这里插入图片描述

标签: springmvc 框架 spring

本文转载自: https://blog.csdn.net/m0_72853403/article/details/134159109
版权归原作者 在下小吉. 所有, 如有侵权,请联系我们删除。

“【SpringMVC篇】5种类型参数传递&&json数据传参”的评论:

还没有评论