我有一個 Spring Boot 應用程式,我有一個將 LocalDate 作為輸入的服務。
例如../resource/list?date=2022-01-01
這適用于 DateTimeFormat 注釋以使用 iso 標準。但是,我想將字串值傳遞為“今天”。例如,../resource/list?date=today。如果值是今天,那么我想將其轉換為今天的日期并將請求發送到資料庫。由于引數的型別是 LocalDate,通常我會收到 HTTP 400 錯誤請求。
我的問題是,Spring 何時將 String 決議為 LocalDate?如果我知道那個階段,我可以在 Spring 之前檢查值并應用我的業務邏輯。
uj5u.com熱心網友回復:
我有一個將 LocalDate 作為輸入的服務。
如果“服務”是指具有給定 URL 和端點映射的 Spring Boot 應用程式,我會注冊一個轉換器以將 String 值轉換為 LocalDate:
public class CustomStringToLocalDateConverter implements Converter<String, LocalDate> {
@Override
public LocalDate convert(String from) {
return "today".equalsIgnoreCase(from) ? LocalDate.now() : LocalDate.parse(from);
}
}
并注冊轉換器:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new CustomStringToLocalDateConverter());
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/404705.html
標籤:
上一篇:如何在本地模擬丟失的資料庫連接?
