• SpringMVC-接收请求中的json数据及日期类型参数传递


    目录

    一、接收请求中的json数据

    请求参数(传递json数组)

    请求参数(传递json对象(POJO))

    请求参数(传递json数组(POJO))

    二、@RequestBody与@RequestParam区别

    三、日期类型参数传递

    类型转换器


    一、接收请求中的json数据

    1、添加json数据转换相关坐标

    1. <dependency>
    2. <groupId>com.fasterxml.jackson.core</groupId>
    3. <artifactId>jackson-databind</artifactId>
    4. <version>2.9.0</version>
    5. </dependency>

    2、设置发送json数据(请求body中添加json数据)

     3、开启自动转换json数据的支持

    1. @Configuration
    2. @ComponentScan("com.itheima.controller")
    3. //开启json数据类型自动转换
    4. @EnableWebMvc
    5. public class SpringMvcConfig {
    6. }

    注意事项:

    @EnableWebMvc注解功能强大,该注解整合了多个功能,此处仅使用其中一部分功能,即json数据进行自动类型转换

    名称:@EnableWebMvc

    类型:配置类注解

    位置:SpringMVC配置类定义上方

    作用:开启SpringMVC多项辅助功能

    范例:

    1. @Configuration
    2. @ComponentScan("com.itheima.controller")
    3. @EnableWebMvc
    4. public class SpringMvcConfig {
    5. }

    4、设置接收json数据

    请求参数(传递json数组)

    1. //集合参数:json格式
    2. //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc
    3. //2.使用@RequestBody注解将外部传递的json数组数据映射到形参的集合对象中作为数据
    4. @RequestMapping("/listParamForJson")
    5. @ResponseBody
    6. public String listParamForJson(@RequestBody List<String> likes){
    7. System.out.println("list common(json)参数传递 list ==> "+likes);
    8. return "{'module':'list common for json param'}";
    9. }

    名称:@RequestBody

    类型:形参注解

    位置:SpringMVC控制器方法形参定义前面

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

    范例:

    1. @RequestMapping("/listParamForJson")
    2. @ResponseBody
    3. public String listParamForJson(@RequestBody List<String> likes){
    4. System.out.println("list common(json)参数传递 list ==> "+likes);
    5. return "{'module':'list common for json param'}";
    6. }

    请求参数(传递json对象(POJO))

    POJO参数:json数据与形参属性名相同,定义POJO类型形参即可接收参数

    1. //POJO参数:json格式
    2. //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc
    3. //2.使用@RequestBody注解将外部传递的json数据映射到形参的实体类对象中,要求属性名称一一对应
    4. @RequestMapping("/pojoParamForJson")
    5. @ResponseBody
    6. public String pojoParamForJson(@RequestBody User user){
    7. System.out.println("pojo(json)参数传递 user ==> "+user);
    8. return "{'module':'pojo for json param'}";
    9. }

    请求参数(传递json数组(POJO))

    POJO集合参数:json数组数据与集合泛型属性名相同,定义List类型形参即可接收参数

    1. //集合参数:json格式
    2. //1.开启json数据格式的自动转换,在配置类中开启@EnableWebMvc
    3. //2.使用@RequestBody注解将外部传递的json数组数据映射到形参的保存实体类对象的集合对象中,要求属性名称一一对应
    4. @RequestMapping("/listPojoParamForJson")
    5. @ResponseBody
    6. public String listPojoParamForJson(@RequestBody List<User> list){
    7. System.out.println("list pojo(json)参数传递 list ==> "+list);
    8. return "{'module':'list pojo for json param'}";
    9. }

    二、@RequestBody与@RequestParam区别

    区别:

    @RequesParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】

    @RequestBody用于接收json数据【application/json】

    应用:

    后期开发中,发送json格式数据为主,@RequestBody应用较广

    如果发送非json格式数据,选用@RequestParam接收请求参数

    三、日期类型参数传递

    日期类型数据基于系统不同格式也不尽相同

    2088-08-18

    2088/02/18

    08/18/2088

    接收形参时,根据不同的格式设置不同的接收方式

    1. //日期参数
    2. //使用@DateTimeFormat注解设置日期类型数据格式,默认格式yyyy/MM/dd
    3. @RequestMapping("/dataParam")
    4. @ResponseBody
    5. public String dataParam(Date date,
    6. @DateTimeFormat(pattern="yyyy-MM-dd") Date date1,
    7. @DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){
    8. System.out.println("参数传递 date ==> "+date);
    9. System.out.println("参数传递 date1(yyyy-MM-dd) ==> "+date1);
    10. System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss) ==> "+date2);
    11. return "{'module':'data param'}";
    12. }

    http://localhost/dataParam?date=2088/08/08&date1=2088-08-18&date3=2088/08/28 8:08:08

    名称:@DateTimeFormat

    类型:形参注解

    位置:SpringMVC控制器方法形参前面

    作用:设定日期时间型数据格式

    范例:

    1. @RequestMapping("/dataParam")
    2. @ResponseBody
    3. public String dataParam(Date date){
    4. System.out.println("参数传递 date ==> "+date2);
    5. return "{'module':'data param'}";
    6. }

    属性:pattern:日期时间格式字符串

    类型转换器

    Converter接口

    1. public interface Converter<S,T>{
    2. @Nullable
    3. T comvert(S var1);
    4. }

    请求参数年龄数据(String->Integer)

    日期格式转换(String -> Date)

    @EnableWebMvc功能之一:根据类型匹配对应的类型转换器

  • 相关阅读:
    chatgpt技术总结(包括transformer,注意力机制,迁移学习,Ray,TensorFlow,Pytorch)
    SFML库的简单使用
    LeetCode 454 四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
    Oracle中实现获取指定表名称批量修改表中的字段类型
    应用亚马逊云科技,Share Creators1个月内上线生成式AI生图模块
    100-150
    SpringCloud中Turbine 1.X版本BUG
    别再当大冤种了,揭开3D建模报班6个常见套路
    ExcelVBA把当前工作表导出为PDF文档
    文件包含漏洞
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/125479030