zoukankan      html  css  js  c++  java
  • Spring的类型转换器

    spring有2种类型转换器,一种是propertyEditor,一种是Converter。

    第一种属性编辑器用法见Spring的属性编辑器的章节。如果2种转换器都适用,那么究竟会适用哪种呢?Spring默认是首先查找PropertyEditor,然后再查找Converter.

    用法示例:

    public enum SEX {
        /**
         * 异常
         */
        NULL(-1, "异常状态"),
        /**
         * 男
         */
        Male(1, "男"),
        /**
         * 女
         */
        Female(0, "女");
        private final int value;
        private final String desc;
        private static Map<Integer, SysErrorCode> map = Maps.newHashMap();
        static {
            for (SysErrorCode item : SysErrorCode.values()) {
                map.put(item.getIntValue(), item);
            }
        }
        SEX(int v, String d) {
            value = v;
            desc = d;
        }
        public static SysErrorCode genEnumByKey(int key) {
            return map.get(key) == null ? map.get(-1) : map.get(key);
        }
    }

    定义SEX枚举的Converter

    public class Integer2SexConvertor implements Converter<Integer, SEX> {
        @Override
        public SEX convert(Integer enumValueStr) {return SEX.genEnumByKey(enumValueStr);
        }
    }

    Convert方法,完成类似 "1" -> SEX.Male的转换

    配置修改

    <mvc:annotation-driven conversion-service="conversionService" />
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
      <property name="converters">
        <set>
          <bean class="****.Integer2SexConvertor" />
        </set>
      </property>
    </bean>
  • 相关阅读:
    innodb buffer pool小解
    information_schema系列十一
    Shader编程教程
    第四章 继承
    第三章 对象和类型
    第二章:核心C#
    前言和第一章.NET的体系结构
    单例模式
    代理模式
    第 1 章 策略模式【Strategy Pattern】
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/6073472.html
Copyright © 2011-2022 走看看