Field error in object ‘salesOrder‘ on field ‘date_of_order‘: rejected value [2021-02-09]; codes [typ

在使用ssm框架搭建项目的提交表单到后台获取数据的时候出现的问题:

20-Feb-2021 22:46:53.164 警告 [http-nio-8081-exec-7] org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.logException Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors
Field error in object 'salesOrder' on field 'date_of_order': rejected value [2021-02-09]; codes [typeMismatch.salesOrder.date_of_order,typeMismatch.date_of_order,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [salesOrder.date_of_order,date_of_order]; arguments []; default message [date_of_order]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'date_of_order'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value '2021-02-09'; nested exception is java.lang.IllegalArgumentException]

从错误信息里提取关键点:
’java.lang.String’ to required type 'java.util.Date’
看到这里之后,我突然想起我的实体类里是有使用了Date数据类型的,既然使用了Date数据类型,那么我们需要给它加上两个注解,这样在提交带有日期的表单也可以成功提交:

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date date_of_order;

当然了在此之前,你需要引入使用这两个注解的maven的坐标:

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.11.2</version>
    </dependency>
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.10.1</version>
    </dependency>

猜你喜欢

转载自blog.csdn.net/qq_44739706/article/details/113901069