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

目录

一、接收请求中的json数据

请求参数(传递json数组)

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

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

二、@RequestBody与@RequestParam区别

三、日期类型参数传递

类型转换器


一、接收请求中的json数据

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

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

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

 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类型形参即可接收参数

    //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类型形参即可接收参数

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏志121

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值