The Best Global Setting for handle Mapping From Json to Joda DateTime In Spring MVC ?

1,246 views
Skip to first unread message

Alessandro Scuderetti

unread,
Jan 28, 2014, 6:05:52 AM1/28/14
to jackso...@googlegroups.com
- Spring: 3.2.5.Release

Spring MVC: Global Settings for JSON<=>DateTime(Joda) with Jackson
- Jackson 2.3.0 =>
<!-- Jackson - JSON -->
<com.fasterxml.jackson-version>2.3.0</com.fasterxml.jackson-version> 
     <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>


- Joda 2.3 =>
<!--Joda-Time -->
<org.joda-time-version>2.3</org.joda-time-version>
<dependency>

<groupId>joda-time</groupId>

<artifactId>joda-time</artifactId>

<version>${org.joda-time-version}</version>

</dependency>


I used this global Spring MVC global settings:

<!--Jackson - objectMapper format date setting -->
<beans:bean id="objectMapper"
class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
p:indentOutput="true" p:simpleDateFormat="yyyy-MM-dd'T'HH:mm:ss.SSSZ">
</beans:bean>
        
        <!--Jackson - registerModule JodaModule -->
<beans:bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="objectMapper" p:targetMethod="registerModule">
<beans:property name="arguments">
<beans:list>
<beans:bean class="com.fasterxml.jackson.datatype.joda.JodaModule" />
</beans:list>
</beans:property>
</beans:bean>

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

This solution works.

Two questions:
1. Is there a more smart solution for manage dateTime format in global settings?
2. How set a default Timezone in this global settings?

Reply all
Reply to author
Forward
0 new messages