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

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

一、接收请求中的json数据

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

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>

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

e08bb8d3de2547a896a27397393772a1.png

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

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


注意事项:

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

名称:@EnableWebMvc

类型:配置类注解

位置:SpringMVC配置类定义上方

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

范例:

@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}

4、设置接收json数据

请求参数(传递json数组)

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


名称:@RequestBody

类型:形参注解

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

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

范例:

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

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

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

39436bda652242cc8778c889410eaa77.png

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

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

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

41dfdd4c358f43dc905a87ef573c8b45.png

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

二、@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

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

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

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


名称:@DateTimeFormat

类型:形参注解

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

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

范例:

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

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

类型转换器

Converter接口

public interface Converter<S,T>{
    @Nullable
    T comvert(S var1);
}

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


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


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

目录
相关文章
|
1月前
|
存储 JSON Apache
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
在最新发布的阿里云数据库 SelectDB 的内核 Apache Doris 2.1 新版本中,我们引入了全新的数据类型 Variant,对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列,彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
|
28天前
|
JSON 数据格式
糊涂工具类(hutool)post请求设置body参数为json数据
糊涂工具类(hutool)post请求设置body参数为json数据
19 1
|
29天前
|
JSON 前端开发 数据格式
Ajax传递json数据
Ajax传递json数据
11 0
|
30天前
|
JSON 并行计算 API
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
75 0
|
1月前
|
JSON 数据格式 Python
Python生成JSON数据
Python生成JSON数据
22 0
|
3月前
|
JSON PHP 数据格式
|
3月前
|
JSON JavaScript 前端开发
JavaScript 如何对 JSON 数据进行冒泡排序?
JavaScript 如何对 JSON 数据进行冒泡排序?
51 0
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
1月前
|
JSON 数据可视化 Linux
数据可视化工具JSON Crack结合内网穿透实现公网访问
数据可视化工具JSON Crack结合内网穿透实现公网访问
数据可视化工具JSON Crack结合内网穿透实现公网访问
|
2月前
|
JSON fastjson Java
FastJSON操作各种格式的JSON数据
FastJSON处理各种格式的JSON数据