0

我将一个对象 ObjectDTO 作为具有一些 org.joda.time.LocalDateTime 参数的 POST 传递。

public class ObjectDTO dto {
  ...

  private LocalDateTime dataesecuzione;
    
  private LocalDateTime oraesecuzione;

  public LocalDateTime getDataesecuzione() {
        return dataesecuzione;
  }

  public void setDataesecuzione(LocalDateTime dataesecuzione) {
        this.dataesecuzione = dataesecuzione;
  }

  public LocalDateTime getOraesecuzione() {
        return oraesecuzione; 
  }
    
  public void setOraesecuzione(LocalDateTime oraesecuzione) {
        this.oraesecuzione = oraesecuzione;
  }
  ...

}

@PutMapping("/api/get/{id}")
public ResponseEntity<Integer> update(@PathVariable("id") int id, @RequestBody ObjectDTO dto) {
...
}

问题是所有 LocalDateTime 参数都重置为当前日期/时间。

我该如何解决这个问题?

谢谢

4

1 回答 1

0

要让 Jackson 反序列化 Joda 日期时间,请在对象映射器 bean 中注册 JodaModule

@Bean
  ObjectMapper objectMapper() {
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.registerModule(new JodaModule());
    return objectMapper;
  }
于 2020-07-01T14:42:24.083 回答