1
這有點令人沮喪......我之前在以前的項目中工作過,但在調試幾個小時之後無法在我的新項目中工作。獲取Spring MVC與JodaModule一起工作
假設我有一個簡單的REST控制器返回喬達的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
被加載。
這裏是我當前的依賴關係樹...我刪除了所有我不需要的東西: -
如何配置Spring MVC以JSON返回正確的日期格式?
非常感謝。
我的天啊....你是絕對正確的,不知何故,我甚至沒有注意到這一點。謝謝。 – limc