gpt4 book ai didi

Spring MVC jackson消息转换器日期格式不起作用,总是返回长时间戳

转载 作者:行者123 更新时间:2023-12-02 09:41:32 27 4
gpt4 key购买 nike

我找到了这两个:

Jackson Object Mapper in spring MVC not working

why is the Object Mapper date fromat not used by message converters for date transform?

但没有一个对我来说是解决方案。

Spring MVC xml:

<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.xxx.model.MyJacksonObjectMapper">

</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

MyJacksonObjectMapper:

public class MyJacksonObjectMapper extends ObjectMapper {

private static final long serialVersionUID = -3282890427623599460L;

public MyJacksonObjectMapper() {
super();
disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
}

}

无论我将 register-defaults 更改为 true 或 false,它仍然不起作用,我的 Controller 始终以时间戳(长)格式序列化对象的日期值。

我的POJO对象没有附加任何注释,它是普通的POJO,我不能用任何注释(不是我的类)来注释它,我相信必须有配置来允许以所需的格式序列化默认对象的日期,但它是无法正常工作,请帮忙。

依赖关系:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>

最佳答案

好的这个答案https://stackoverflow.com/a/7714503/1542363间接拯救了我,虽然我不知道为什么。

它提到应该删除它:

<mvc:annotation-driven/>

我的问题与此类似,我在 Spring 配置 XML 中重复了注释 block :

所以我更改我的配置:

<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.security.web.method.annotation.AuthenticationPrincipalArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>

<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.xxx.model.MyJacksonObjectMapper">

</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

至:

<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="org.springframework.security.web.method.annotation.AuthenticationPrincipalArgumentResolver" />
</mvc:argument-resolvers>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.xxx.model.MyJacksonObjectMapper"></bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

然后就可以了,不知道是什么原因。

关于Spring MVC jackson消息转换器日期格式不起作用,总是返回长时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44425999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com