首页 > 开发 > Java > 正文

SpringMVC中日期格式的转换

2024-07-13 10:05:30
字体:
来源:转载
供稿:网友

解决日期提交转换异常的问题

由于日期数据有很多种格式,所以springmvc没办法把字符串转换成日期类型。所以需要自定义参数绑定。前端控制器接收到请求后,找到注解形式的处理器适配器,对RequestMapping标记的方法进行适配,并对方法中的形参进行参数绑定。在springmvc这可以在处理器适配器上自定义Converter进行参数绑定。如果使用<mvc:annotation-driven/>可以在此标签上进行扩展。

1.自定义DataConvertor类, 并实现Convertor接口

public class DateConverter implements Converter<String, Date> {   @Override   public Date convert(String source) {      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      try {        return simpleDateFormat.parse(source);      } catch (ParseException e) {        e.printStackTrace();      }      return null;   }}

2.在springmvc.xml配置文件中注册转换器

方法一:通过注解驱动的方式加载转换器

<!-- 配置mvc注解驱动 -->  <mvc:annotation-driven conversion-service="conversionService"/>  <!-- 配置日期转换器 -->  <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">    <property name="converters">      <set>        <bean class="cn.rodge.ssm.converter.DateConverter"></bean>      </set>    </property>  </bean>

方法二:通过自定义webBinder配置(不常用)

<?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:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">   <!-- 扫描带Controller注解的类 -->   <context:component-scan base-package="cn.itcast.springmvc.controller" />   <!-- 转换器配置 -->   <bean id="conversionService"class="org.springframework.format.support.FormattingConversionServiceFactoryBean">      <property name="converters">        <set>           <bean class="cn.itcast.springmvc.convert.DateConverter"/>        </set>      </property>   </bean>   <!-- 自定义webBinder -->   <bean id="customBinder"   class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">      <property name="conversionService" ref="conversionService" />   </bean>   <!--注解适配器 -->   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">      <property name="webBindingInitializer" ref="customBinder"></property>   </bean>   <!-- 注解处理器映射器 -->   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>   <!-- 加载注解驱动 -->   <!-- <mvc:annotation-driven/> -->   <!-- 视图解析器 -->   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />      <!-- jsp前缀 -->      <property name="prefix" value="/WEB-INF/jsp/" />      <!-- jsp后缀 -->      <property name="suffix" value=".jsp" />   </bean></beans>

注意:此方法需要独立配置处理器映射器、适配器,不再使用<mvc:annotation-driven/>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持VeVb武林网!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表