zoukankan      html  css  js  c++  java
  • 数据类型转换器

    为什么要用数据类型转换器:

    Spring MVC默认数据类型转换器包含了绝大多数Java类型的转换工作:

    我们也可以自定义类型转换器用来实现特殊需求,比如将日期字符串转换为Date类型。

    实现数据类型转换器(以日期字符串转换Date类型为例)

    ConversionService是Spring类型转换体系的核心接口。 可以利用ConversionServiceFactoryBean在Spring的IOC容器中定义一个ConversionService。Spring将自动识别出IOC容器中的ConversionService,并在Bean属性配置及Spring MVC处理方法入参绑定等场合使用它进行数据的转换。

     

    具体实现:自定义类型转换器类DateConverter,并将其添加到Spring Ioc容器中

    Spring定义了3种类型的转换器接口,实现任意一个转换器接口都可以作为自定义转换器注册到ConversionServiceFactoryBean中:

    a、Converter<S,T>:将 S 类型对象转为 T 类型对象;

    b、ConverterFactory:将相同系列多个 “同质” Converter 封装在一起。如果希望将一种类型的对象转换为另一种类型及其子类的对象(例如将 String 转换为 Number 及 Number 子类(Integer、Long、Double 等)对象)可使用该转换器工厂类;

    c、GenericConverter:会根据源类对象及目标类对象所在的宿主类中的上下文信息进行类型转换;

    @Component//将其加入IOC容器
    publicclassDateConverterimplements Converter<String, Date> {
    
        //source即为我们输入的日期字符串
        public Date convert(String source) {
            if(source!=null&& !"".equals(source.trim())) {
                try {
                      DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                      return dateFormat.parse(source);
                    } catch (Exception e) {
                      e.printStackTrace();
                    }
            }
            return null;
        }
    }
    <!--通过ConversionServiceFactoryBean的converters属性注册自定义的类型转换器-->
    <
    beanid="conversionService"class="org.springframework.context.support.ConversionServiceFactoryBean"> <propertyname="converters"> <set> <refbean="dateConverter"/> </set> </property> </bean>

    <!--将自定义的 ConversionService 注册到Spring MVC 的上下文中--> <mvc:annotation-drivenconversion-service="conversionService"></mvc:annotation-driven>
  • 相关阅读:
    WinForm绘制带有升序、降序的柱形图
    WinForm绘制柱形图
    WinForm绘制文本--字体加粗、倾斜、下划线
    WinForm绘制直线、曲线、矩形、椭圆、圆弧
    DataGridView动态添加下拉列表DataGridViewComboBoxColumn并为下拉列表设置默认值
    winform DataGridView设置选中单元格整行变色和隔行变色
    winform DataGridView设置行高 列宽 设置内容格式 验证输入单元格的内容是否正确
    winform定义static变量窗体传值
    C#中英文逗号之间的相互转化
    c#: WebBrowser 禁止在新窗口打开链接
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/12363517.html
Copyright © 2011-2022 走看看