• 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功能之一:根据类型匹配对应的类型转换器

  • 相关阅读:
    Mac m1配置MAMP+PHPStorm环境
    【力扣-每日一题】213. 打家劫舍 II
    CANopen Object 1000h: Device type 多设备信息
    四路定时控制器设计心得体会
    设计一个 GBase LDAP 客户端
    MySQL的binlog日志的简介与查看
    docker 容器 network host 模式启动
    Flink CDC详解
    金仓数据库KingbaseES安全指南--5.1. 数据库的传输安全
    apt-get update报错解决方法
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/125479030