私はBeanの設定に純粋なJava設定を使用するSpring WebMvc(Springブートではない)プロジェクトで作業しています。私は、Spring/JacksonがLocalDateTimeのようなjava.time(jsr310)オブジェクトで@DateTimeFormatアノテーションを尊重するのが難しいです。Spring DateTimeFormat java.timeのコンフィグレーション
classpathにjackson-datatype-jsr310とjackson-databind jars(バージョン2.7.4)があり、基本的なwebmvcアプリケーションのスプリングコンテキストとspring-webmvc(バージョン4.3.0
@Configuration
@ComponentScan({"com.example.myapp"})
public class WebAppConfig extends WebMvcConfigurationSupport {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
ObjectMapper mapper = Jackson2ObjectMapperBuilder
.json()
.indentOutput(true)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.findModulesViaServiceLoader(true)
.build();
converters.add(new MappingJackson2HttpMessageConverter(mapper));
super.addDefaultHttpMessageConverters(converters);
}
}
私は残りのコントローラ上で、私のデータモデルをシリアライズでこれをテストしてみた:.RELEASE)
は、ここに私の関連する構成クラスです。 Jacksonが@JsonFormatを尊重しているように見えるが、@DateTimeFormatは完全に無視されているようだ。
@DateTimeFormatを尊重するためにspring/jacksonを取得するために追加する設定は何ですか? @JsonFormatを使用するだけで問題に遭遇する可能性のある、2つのアノテーションの間に重要な違いがありますか?
は、私はほとんど私が潜在的に必要とする可能性があるシナリオがあることを意味している(私が間違っているなら、私を修正)以来、オンラインの例を見て混乱だったと思います両方の注釈をJava時刻プロパティで使用するたとえば、休憩(ジャクソン)とjspページのスプリング形式のストリングの両方で1つのBeanを公開したい場合は、 – Alex
@Alexを修正するには、両方を使用する必要があります。 – ck1