问题由来:
在页面获取列表时,页面列表常有修改时间,创建时间的显示;如果没有配置,则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>
效果:
接六(一)、springMVC数据转换&格式化&校验&错误消息显示和国际化
spring文档地址:https://docs.spring.io/spring-framework/docs/5.3.27/reference/html/web.html#mvc-view-xml-mapping