gpt4 book ai didi

java - 让 Spring MVC 与 JodaModule 一起工作

转载 作者:行者123 更新时间:2023-11-30 07:52:55 27 4
gpt4 key购买 nike

这有点令人沮丧...我之前在以前的项目中可以使用此功能,但在调试了几个小时后无法在我的新项目中使用它。

假设我有一个简单的 Rest Controller ,它返回 Joda 的 LocalDate:-

@RestController
@RequestMapping(value = "/api")
public final class ApiController {
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<LocalDate> main() {
return new ResponseEntity<LocalDate>(LocalDate.now(), HttpStatus.OK);
}
}

默认情况下,当我调用 http://app/api 时,我会得到 [2015,10,13]。我真正想要的是2015-10-13

为了在我之前的项目中解决这个问题,我在 spring-servlet.xml 中使用此配置:-

<?xml version="1.0" encoding="UTF-8"?>
<beans ...>

<context:component-scan base-package="test.controller"/>

<mvc:annotation-driven/>

<mvc:resources location="/resources/" mapping="/resources/**"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

<bean id="objectMapper"
class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
p:indentOutput="true"
p:simpleDateFormat="yyyy-MM-dd'T'HH:mm:ss.SSSZ">
</bean>

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="objectMapper"
p:targetMethod="registerModule">
<property name="arguments">
<list>
<bean class="com.fasterxml.jackson.datatype.joda.JodaModule"/>
</list>
</property>
</bean>

<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="objectMapper"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
</beans>

但是,当我在新项目中执行相同的操作时,我再次得到 [2015,10,13] 而不是 2015-10-13

我确实升级了一些依赖项,并且还确保没有加载额外的 ObjectMapper

这是我当前的依赖树...我删除了所有不需要的东西:-

enter image description here

如何配置 Spring MVC 以返回正确的 JSON 日期格式?

非常感谢。

最佳答案

您声明 <mvc:annotation-driven>两次。尝试删除第一个声明(空,默认配置)。可能是你在第二个<mvc:annotation-driven>中配置的消息转换器被第一个声明覆盖(使用默认消息转换器)。

关于java - 让 Spring MVC 与 JodaModule 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111585/

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