前后端日期的传值问题

目录

1.问题

2.解决方案

3.特别说明


1.问题

前端使用vue结合element ui进行开发经常会遇到日期的传值问题。我主要遇到了两方面的问题

(1):查询参数中设置了日期参数,通过get请求,将数据发送到后端,但是查询参数中不存在日期参数。

(2):后端接收日期数据的时候出现异常,如下:

"Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'time'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2022-6-4 10:23:54'; nested exception is java.lang.IllegalArgumentException",

异常的大概意思是将String类型的日期转换成日期格式的日期时失败了。

2.解决方案

前端:

            
              
              
            

注意要使用value-format进行日期的格式化。

后端:

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

在转换失败的项目上添加JsonFormat注解,可以约束时间的接收格式响应格式 (接收和响应的都是JSON字符串),将日期类型数据在JSON格式和java.util.Date对象之间转换。

格式和前端传递的格式保持一致。

如果格式不一致的场合,可能会出现如下错误:

JSON parse error: Cannot deserialize value of type `java.util.Date` from String \"2022-6-4 10:23\": expected format \"yyyy-MM-dd HH:mm:ss\"; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.Date` from String \"2022-6-4 10:23\": expected format \"yyyy-MM-dd HH:mm:ss\"\n at [Source: (PushbackInputStream); line: 3, column: 8] (through reference chain: com.itheima.domain.Product[\"time\"])

3.特别说明

以上这几种问题有可能不是绝对的,因为我在几种框架中认证得到的结果不一样,自己没有详细的研究原因。但是如果出现这种出错信息可以按照以上方案修改就行。

你可能感兴趣的:(前端页面,vue.js,前端,elementui)