2

我从 Postman 向 Spring 应用程序发送表单数据请求。Spring 应用程序中的 LocalDate 字段作为表单数据中的文本字段。我收到了转换错误。

@Column(
    name = "leasing_expiry",
    nullable = false
)
private LocalDate leasingExpiry;

字段“leasingExpiry”上的对象“vehicleDto”中的字段错误:拒绝值 [2021-01-01];代码 [typeMismatch.vehicleDto.leasingExpiry,typeMismatch.leasingExpiry,typeMismatch.java.time.LocalDate,typeMismatch]; 参数 [org.springframework.context.support.DefaultMessageSourceResolvable:代码 [vehicleDto.leasingExpiry,leasingExpiry];论据 []; 默认消息 [leasingExpiry]]; 默认消息 [无法将类型“java.lang.String”的属性值转换为属性“leasingExpiry”所需的类型“java.time.LocalDate”;嵌套异常是 org.springframework.core.convert.ConversionFailedException:无法从类型 [java.lang.String] 转换为类型 [@javax.validation.constraints.NotBlank java.time.LocalDate] 的值'2021-01-01 '; 嵌套异常是 java.lang.IllegalArgumentException:

邮递员请求

4

1 回答 1

0

据我了解,您在将String对象映射到LocalDateSpring 控制器中的对象时遇到问题。尝试LocalDate使用以下注释注释字段:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)

并且可能需要以下依赖项:

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

有一天我遇到了同样的问题,它解决了我的问题。

于 2021-04-23T19:06:44.043 回答