六springMVC数据转换 jacson配置,json中的date由Date格式化输出
Posted 啄木鸟伍迪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六springMVC数据转换 jacson配置,json中的date由Date格式化输出相关的知识,希望对你有一定的参考价值。
问题由来:
在页面获取列表时,页面列表常有修改时间,创建时间的显示;如果没有配置,则Date类型的数据,如创建时间,显示的是一个时间戳;每次都需要对Date类型的数据进行转换,非常麻烦,所以在这里配置了json自动转换Date格式的配置;
需要的jar包:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.14.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.14.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.14.2</version> </dependency> <dependency> <groupId>org.codehaus.woodstox</groupId> <artifactId>woodstox-core-asl</artifactId> <version>4.4.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> <version>2.14.2</version> </dependency>
只需要配置spring-mvc.xml文件即可实现:
spring-mvc.xml 日期格式转换配置:
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper" ref="objectMapper"/> </bean> <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter"> <property name="objectMapper" ref="xmlMapper"/> </bean> </mvc:message-converters> </mvc:annotation-driven> <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" p:indentOutput="true" p:simpleDateFormat="yyyy-MM-dd HH:mm:ss" p:modulesToInstall="com.fasterxml.jackson.module.paramnames.ParameterNamesModule"/> <bean id="xmlMapper" parent="objectMapper" p:createXmlMapper="true"/>
spring-mvc.xml全部文件查看:
<?xml version="1.0" encoding="UTF-8"?> <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 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.3.xsd"> <context:component-scan base-package="org.muses.ssm.demo.mgt.*"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> </context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--配置SpringMVC的数据转换器 --> <bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="org.muses.ssm.demo.mgt.core.common.StringToDateConverter"> <property name="datePattern" value="yyyy-MM-dd"></property> </bean> <bean class="org.muses.ssm.demo.mgt.core.common.StringToIntegerConverter"></bean> </list> </property> </bean> <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper" ref="objectMapper"/> </bean> <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter"> <property name="objectMapper" ref="xmlMapper"/> </bean> </mvc:message-converters> </mvc:annotation-driven> <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" p:indentOutput="true" p:simpleDateFormat="yyyy-MM-dd HH:mm:ss" p:modulesToInstall="com.fasterxml.jackson.module.paramnames.ParameterNamesModule"/> <bean id="xmlMapper" parent="objectMapper" p:createXmlMapper="true"/> <mvc:default-servlet-handler /> <mvc:resources mapping="/**" location="/WEB-INF/resource/" /> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> </bean> <!-- 多文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8"></property> <property name="maxUploadSize" value="1024000"></property> </bean> <!-- Spring提供的基于的Ehcache实现的缓存管理器 --> <bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml" /> </bean> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="cacheManagerFactory" /> </bean> <!-- 启用缓存注解功能(请将其配置在Spring主配置文件中) --> <cache:annotation-driven cache-manager="cacheManager" /> </beans>
效果:
接六(一)、springMVC数据转换&格式化&校验&错误消息显示和国际化
spring文档地址:https://docs.spring.io/spring-framework/docs/5.3.27/reference/html/web.html#mvc-view-xml-mapping
博客园地址:https://www.cnblogs.com/lixiuming521125/
SpringMVC的数据类型转换
类型转换器,就是将请求参数中的字符串 转换成其他类型,进行方法参数的赋值
定义一个类型转换器,需要实现
Converter
接口,会有一个泛型
(
即对数据类型的约束
)
;
SpringMVC
拦截器
springMVC
拦截器的配置
/WEB-INF
路径的下文件,属于隐藏文件,只能通过项目内部进行跳转,不能通过路径直接访问;
编写案例
定义一个类型转换器,需要实现
Converter
接口,会有一个泛型
(
即对数据类型的约束
)
;
拦截器与
Servlet
中的过滤器
Filter
类似
主要区别:
1
、实现原理不同 拦截器是基于
java
的反射机制的,而过滤器是基于函数回调;
2
、使用范围不同 拦截器不依赖与
servlet
容器,过滤器依赖与
servlet
容器。
3
、触发时机不同 过滤器先执行
(
在
servlet
之前
)
,拦截器后执行
(
在
servlet
之后执行
)
;
4
、拦截的请求范围不同
5
、注入
Bean
情况不同 拦截器可以获取
IOC
容器中的各个
bean
,而过滤器就不行,拦截器里可
以注入一个
service
,可以调用业务逻辑。
6
、控制执行顺序不同 过滤器
1
个方法,拦截器
3
个方法
(preHandle
按照顺序执行 ,另外两个
方法顺序相反
)
,
springMVC
拦截器的配置
1
、实现
HandlerInterceptor
接口 或者 继承
HandlerInterceptor
的实体子类
2
、实现
WebRequestInterceptor
接口 或者 继承
WebRequestInterceptor
的实体子类
/WEB-INF
路径的下文件,属于隐藏文件,只能通过项目内部进行跳转,不能通过路径直接访问;
编写案例
实现功能,
用户登录后,可以访问
/selectAll /add /delete
未登录用户,只能访问
/login
访问其他路径时,自动跳转至登录页,并展示错误信息
"
用户未
登录
"
以上是关于六springMVC数据转换 jacson配置,json中的date由Date格式化输出的主要内容,如果未能解决你的问题,请参考以下文章