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>
  • 相关阅读:
    六月计划#2B(6.10-6.16)
    set
    六月计划#2A(6.10-6.16)
    Codevs_1166_[NOIP2007]_矩阵取数游戏_(动态规划+高精度)
    7月17日刷题记录 分治Getting!循环比赛日程表
    倍增ST应用 选择客栈(提高组)
    7月16日做题记录 贪心小练~
    三分查找笔记
    倍增笔记ST表
    分治笔记
  • 原文地址:https://www.cnblogs.com/wade-luffy/p/6073472.html
Copyright © 2011-2022 走看看