springboot前端传参date类型后台处理的方式

 更新时间:2022年07月05日 09:02:25   作者:香草天空Sky  
这篇文章主要介绍了springboot前端传参date类型后台处理的方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot前端传参date类型后台处理

先说结论

建议大家直接使用@JsonFormat,原因如下:  

1、针对json格式:在配置文件中加以下配置

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

2、针对form表单格式,加下面这句配置就可以

spring.mvc.dateFormat = yyyy-MM-dd HH:mm:ss

3、也可以在pojo中对特定的date类型属性加了以下配置

@DateTimeFormat来控制入参,@JsonFormat来控制出参

 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")    

4、前端以字符串的形式给后台传递 带有格式的 日期 和 数字 数据,导致后台无法解析数据:

解决方法

总结:

1.如果前后端传的数据都是json格式,那么后台接数据,传数据都可以用@JsonFormat ;

2.@DateTimeFormat适合后端接收前端传来的数据,不管是不是json格式都可以正确转换成Date型数据,只要前端传来的格式正确且后端@DateTimeFormat的pattern写正确。但是,这个注解无法将Date型数据用json传到前端去

综上所述,建议大家直接使用@JsonFormat

前端如何发送date类型的参数给后端

首先阐述一下常见的几种时间类型的区别

  • java.util.Date日期格式为:年月日时分秒
  • java.sql.Date日期格式为:年月日
  • java.sql.Time日期格式为:时分秒
  • java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)

前端传时间类型的参数给后端,一般有两种传参手段,GET传参和POST传参。

GET传参时

前段传过来的是一个string的字符串,后端用string类型接接收后需要做相关处理。处理代码如下:

        String str="2021-5-21";  //假设str为前段传过来的时间类型参数
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date parse = simpleDateFormat.parse(str);
        String format = simpleDateFormat.format(parse);
        System.out.println(parse);   
        System.out.println(format);

Post传参时

前端传过来的是一个对象,时间参数只是对象当中的一个属性,该对象案例如下。

public class Student {
    public String getName() {
        return name;
    }
    public Date getDate() {
        return date;
    }
    private String name;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") //在时间属性上面加上该注解
    private Date date;
}

后端接收请求代码

@RestController
@RequestMapping("/test")
public class TestTime {
    @GetMapping("/time1")
    public void service1(String time){
        System.out.println(time);
    }
    @PostMapping("/time2")
    public void service2(@RequestBody Student student){
        System.out.println(student);
    }
}

模拟浏览器请求

### GET 请求
GET {{baseUrl}}//test/time2?time=2021-5-8
### POST 请求
POST {{baseUrl}}//test/time2
Content-Type: application/json
{
  "name": "小顾",
  "date": "2020-05-08 17:08:10"
}

注:baseurl是我的ip地址,模拟请求的工具很多,上述只是一种工具而已,读者可用postman等工具模拟请求。

总结:get请求是字符串,需要做处理

post请求传的是对象,通过@requestbody,和在字段上添加jsonformat,会自动解析为date类型,不需要在做额外处理。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用OpenFeign实现服务调用的方法详解

    使用OpenFeign实现服务调用的方法详解

    OpenFeign是运行在客户端的声明式服务调用的框架,通过声明接口的方式来达到对服务的调用,本文就来和大家讲讲如何使用OpenFeign实现服务调用吧
    2023-06-06
  • Java synchronized偏向锁的核心原理详解

    Java synchronized偏向锁的核心原理详解

    这篇文章主要为大家详细介绍了Java synchronized偏向锁的核心原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Java ObjectMapper使用详解

    Java ObjectMapper使用详解

    ObjectMapper类是Jackson的主要类,它可以帮助我们快速的进行各个类型和Json类型的相互转换,本文给大家介绍Java ObjectMapper的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • 详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    本篇文章主要介绍了手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Spring面向切面编程AOP详情

    Spring面向切面编程AOP详情

    这篇文章主要介绍了Spring面向切面编程AOP详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • MyBatis Log 插件无法显示SQL语句的原因解析

    MyBatis Log 插件无法显示SQL语句的原因解析

    MyBatis Log是IDEA一款下载量非常高的插件,该插件可以对控制台打印的日志进行解析,然后将对应的SQL语句整理并拼接好对应的参数,非常方便。这篇文章给大家介绍MyBatis Log 插件无法显示SQL语句的原因,感兴趣的朋友跟随小编一起看看吧
    2020-09-09
  • 如何在Maven项目配置pom.xml指定JDK版本和编码

    如何在Maven项目配置pom.xml指定JDK版本和编码

    maven是个项目管理工具,如果我们不告诉它要使用什么样的jdk版本编译,它就会用maven-compiler-plugin默认的jdk版本来处理,这样就容易出现版本不匹配的问题,这篇文章主要给大家介绍了关于如何在Maven项目配置pom.xml指定JDK版本和编码的相关资料,需要的朋友可以参考下
    2024-01-01
  • 针对Dubbo接口Mock的解决方案详解

    针对Dubbo接口Mock的解决方案详解

    这篇文章主要为大家介绍了针对Dubbo接口Mock的解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java基于ArrayList实现群主发红包功能

    Java基于ArrayList实现群主发红包功能

    这篇文章主要介绍了Java基于ArrayList实现群主发红包功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 升级dubbo2.7.4.1版本平滑迁移到注册中心nacos

    升级dubbo2.7.4.1版本平滑迁移到注册中心nacos

    这篇文章主要为大家介绍了2.7.4.1的dubbo平滑迁移到注册中心nacos的两种版本升级方案,以及为什要升级,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-02-02

最新评论