当前位置: 代码迷 >> 综合 >> JAVA:SpringMVC配置全局日期转换器(conversion-service配置方法无效)的问题解决
  详细解决方案

JAVA:SpringMVC配置全局日期转换器(conversion-service配置方法无效)的问题解决

热度:19   发布时间:2023-12-08 18:03:34.0

在SpringMVC中后端传递给前端时,日期类型默认是时间戳,需要进行转换。

最简单的方式是设置一个全局日期转换器。

网上方法一使用conversion-service配置方法,但调试时发现无效,具体原因问题还需后续确认。后来用方法二解决了。

方法一:conversion-service配置方法

1.添加全局类型转换器DateConverter.java

import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** @Describle Spring3.1之后全局日期转换方式*/
public class DateConverter implements Converter<String, Date> {@Overridepublic Date convert(String source) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置不会对日期进行计算simpleDateFormat.setLenient(false);try {return simpleDateFormat.parse(source);} catch (ParseException e) {e.printStackTrace();}return null;}
}

2.在springmvc的xml添加配置节点

    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven><!--配置自定义日期转换器,并且在mvc:annotation-driven 标签中加上conversion-service属性--><bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"><property name="converters"><list><bean class="com.*.utils.DateConverter"></bean></list></property></bean>

方法二:更简单,直接在springmvc的xml添加配置节点

<mvc:annotation-driven>  <!-- 处理responseBody 里面日期类型 -->  <mvc:message-converters>  <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  <property name="objectMapper">  <bean class="com.fasterxml.jackson.databind.ObjectMapper">  <property name="dateFormat">  <bean class="java.text.SimpleDateFormat">  <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />  </bean>  </property>  </bean>  </property>  </bean>  </mvc:message-converters>  </mvc:annotation-driven>

方法一无法生效的情况下使用方法二解决了问题。