zoukankan      html  css  js  c++  java
  • SpringMVC自定义类型转换器

    1、原因

    我们提交数据的时候,request中的数据都是以String的类型存在的,Spring会做一些类型转换,将这些数据转换成我们所需要的数据类型(int、float等)。对于日期来说,Spring支持的格式是2019/11/11,当我们传入2019-11-11,程序会报错,这时候就需要我们自定义类型转换器来满足我们的需要。

    2、实现方法

    1. 定义一个类实现Converter接口,该接口有两个泛型。

      public interface Converter<S, T> { //S:表示接受的类型,T:表示目标类型
      	@Nullable
      	T convert(S source);
      }
      
    2. 类具体代码如下:

      public class StringToDataConverter implements Converter<String, Date>
      {
          @Override
          public Date convert(String source)
          {
              if (null == source) throw new RuntimeException("source is null!");
              try
              {
                  DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                  return df.parse(source);
              } catch (ParseException e)
              {
                  throw new RuntimeException("Converter String to Date failed!");
              }
          }
      }
      
    3. 在springmvc.xml配置文件中添加配置:

          <!--配置自定义类型转换器-->
          <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
              <property name="converters">
                  <set>
                      <bean class="com.lin.utils.StringToDataConverter"/>
                  </set>
              </property>
          </bean>
      
          <!--开启springMVC框架注解的支持,增加类型转换器,使其生效-->
          <mvc:annotation-driven conversion-service="conversionService"/>
      
  • 相关阅读:
    【LA3461】Leonardo的笔记本
    【洛谷P3708】Koishi的数学题
    【Uva11762】Race to 1
    【uva11421】玩纸牌
    【反演复习计划】【51nod1594】Gcd and Phi
    【乱入】Uva11021麻球繁衍
    【反演复习计划】【bzoj4407】于神之怒加强版
    BZOJ3293: [Cqoi2011]分金币
    BZOJ2400: Spoj 839 Optimal Marks
    BZOJ1391: [Ceoi2008]order
  • 原文地址:https://www.cnblogs.com/jinchengll/p/11792300.html
Copyright © 2011-2022 走看看