六(二)、springMVC数据转换 jacson配置,json中的date由Date格式化输出

发布时间 2023-04-19 10:21:41作者: 啄木鸟伍迪

问题由来:

在页面获取列表时,页面列表常有修改时间,创建时间的显示;如果没有配置,则Date类型的数据,如创建时间,显示的是一个时间戳;每次都需要对Date类型的数据进行转换,非常麻烦,所以在这里配置了json自动转换Date格式的配置;

 

需要的jar包:

 1 <dependency>
 2             <groupId>com.fasterxml.jackson.core</groupId>
 3             <artifactId>jackson-databind</artifactId>
 4             <version>2.14.2</version>
 5         </dependency>
 6         <dependency>
 7             <groupId>com.fasterxml.jackson.core</groupId>
 8             <artifactId>jackson-core</artifactId>
 9             <version>2.14.2</version>
10         </dependency>
11         <dependency>
12             <groupId>com.fasterxml.jackson.dataformat</groupId>
13             <artifactId>jackson-dataformat-xml</artifactId>
14             <version>2.14.2</version>
15         </dependency>
16         <dependency>
17             <groupId>org.codehaus.woodstox</groupId>
18             <artifactId>woodstox-core-asl</artifactId>
19             <version>4.4.1</version>
20         </dependency>
21         <dependency>
22             <groupId>com.fasterxml.jackson.module</groupId>
23             <artifactId>jackson-module-parameter-names</artifactId>
24             <version>2.14.2</version>
25         </dependency>

 

只需要配置spring-mvc.xml文件即可实现:

spring-mvc.xml 日期格式转换配置:

 1    <mvc:annotation-driven conversion-service="conversionServiceFactoryBean">
 2          <mvc:message-converters>
 3             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
 4                 <property name="objectMapper" ref="objectMapper"/>
 5             </bean>
 6             <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter">
 7                 <property name="objectMapper" ref="xmlMapper"/>
 8             </bean>
 9         </mvc:message-converters>
10     
11     </mvc:annotation-driven>
12     <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
13       p:indentOutput="true"
14       p:simpleDateFormat="yyyy-MM-dd HH:mm:ss"
15       p:modulesToInstall="com.fasterxml.jackson.module.paramnames.ParameterNamesModule"/>
16 
17     <bean id="xmlMapper" parent="objectMapper" p:createXmlMapper="true"/>

spring-mvc.xml全部文件查看:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
 3         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 4         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
 5         http://www.springframework.org/schema/cache 
 6         http://www.springframework.org/schema/cache/spring-cache-4.3.xsd">
 7 
 8     <context:component-scan base-package="org.muses.ssm.demo.mgt.*">
 9         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
10         <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
11     </context:component-scan>
12 
13     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
14         <property name="prefix" value="/WEB-INF/views/"></property>
15         <property name="suffix" value=".jsp"></property>
16     </bean>
17 
18     <!--配置SpringMVC的数据转换器 -->
19     <bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean">
20         <property name="converters">
21             <list>
22                 <bean class="org.muses.ssm.demo.mgt.core.common.StringToDateConverter">
23                     <property name="datePattern" value="yyyy-MM-dd"></property>
24                 </bean>
25                 <bean class="org.muses.ssm.demo.mgt.core.common.StringToIntegerConverter"></bean>
26             </list>
27         </property>
28     </bean>
29 
30       <mvc:annotation-driven conversion-service="conversionServiceFactoryBean">
31          <mvc:message-converters>
32             <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
33                 <property name="objectMapper" ref="objectMapper"/>
34             </bean>
35             <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter">
36                 <property name="objectMapper" ref="xmlMapper"/>
37             </bean>
38         </mvc:message-converters>
39     
40     </mvc:annotation-driven>
41     <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
42       p:indentOutput="true"
43       p:simpleDateFormat="yyyy-MM-dd HH:mm:ss"
44       p:modulesToInstall="com.fasterxml.jackson.module.paramnames.ParameterNamesModule"/>
45 
46     <bean id="xmlMapper" parent="objectMapper" p:createXmlMapper="true"/>
47     <mvc:default-servlet-handler />
48     <mvc:resources mapping="/**" location="/WEB-INF/resource/" />
49     <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
50         <property name="basename" value="i18n"></property>
51     </bean>
52     <!-- 多文件上传 -->
53     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
54         <property name="defaultEncoding" value="UTF-8"></property>
55         <property name="maxUploadSize" value="1024000"></property>
56     </bean>
57     <!-- Spring提供的基于的Ehcache实现的缓存管理器 -->
58     <bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
59         <property name="configLocation" value="classpath:ehcache.xml" />
60     </bean>
61     <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
62         <property name="cacheManager" ref="cacheManagerFactory" />
63     </bean>
64     <!-- 启用缓存注解功能(请将其配置在Spring主配置文件中) -->
65     <cache:annotation-driven cache-manager="cacheManager" />
66 </beans>
View Code

效果:

 接六(一)、springMVC数据转换&格式化&校验&错误消息显示和国际化

spring文档地址:https://docs.spring.io/spring-framework/docs/5.3.27/reference/html/web.html#mvc-view-xml-mapping