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>

Spring的类型转换器的更多相关文章

  1. Spring MVC类型转换器

    类型转换器引入 为什么页面上输入"12",可以赋值给Handler方法对应的参数?这是因为框架内部帮我们做了类型转换的工作.将String转换成int 但默认类型转换器并不是可以将 ...

  2. 自定义类型转换器 及 使用 ServletAPI 对象作为方法参数

    自定义类型转换器使用场景: jsp 代码:  <!-- 特殊情况之:类型转换问题 --> <a href="account/deleteAccount?date=2018- ...

  3. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  4. Spring MVC__自定义日期类型转换器

    WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们.说真的,以前真没这样做过,之前都是一口气查 ...

  5. spring的2种类型转换器

    spring有2种类型转换器,一种是propertyEditor,一种是Converter.虽然都是类型转换,但是还是有细微差别. 所以这里以一个例子的形式来分析一下这2种类型转换的使用场景和差别. ...

  6. Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)

    1.前言 对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度 ...

  7. 在Spring MVC 中配置自定义的类型转换器

    方法一: 实现spring mvc 自带的 Formatter 接口 1.创建一个类来实现Formatter接口 import org.springframework.format.Formatter ...

  8. spring boot 配置全局日期类型转换器

    1. 首先自定义一个类型转换器 import org.springframework.core.convert.converter.Converter; import org.springframew ...

  9. SpringMVC类型转换器、属性编辑器

    对于MVC框架,参数绑定一直觉得是很神奇很方便的一个东西,在参数绑定的过程中利用了属性编辑器.类型转换器 参数绑定流程 参数绑定:把请求中的数据,转化成指定类型的对象,交给处理请求的方法 请求进入到D ...

随机推荐

  1. Hadoop日记Day1---Hadoop介绍

    一.Hadoop项目简介 1. Hadoop是什么 Hadoop是一个适合大数据的分布式存储与计算平台. 作者:Doug Cutting:Lucene,Nutch. 受Google三篇论文的启发 2. ...

  2. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  3. 添加删除虚拟ip

    添加  ip -f inet addr add 192.168.1.245/32 brd 192.168.1.245 dev ens32 删除  ip -f inet addr del 192.168 ...

  4. [POJ1936]All in All

    [POJ1936]All in All 试题描述 You have devised a new encryption technique which encodes a message by inse ...

  5. Stanford机器学习---第八讲. 支持向量机SVM

    原文: http://blog.csdn.net/abcjennifer/article/details/7849812 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回 ...

  6. 自动化运维之puppet的学习(如何找到你需要的模块)

    https://forge.puppetlabs.com/  puppet 模块下载 http://kisspuppet.com/2014/01/14/puppet_forge_modules/ pu ...

  7. 响应式Web设计(Responsive Web design)

    中文名 响应式Web设计 提出时间 2010年5月 英    文 Responsive Web design 解    释 一个网站能够兼容多个终端 目    的 解决移动互联网的浏览 优    点 ...

  8. php如何将数组保存为文件的方法? 三个方法让你快速把数组保存成为文件存储

    php 缓存数组形式的变量,实际上就是将 php 将数组写入到一个文本文件或者后缀名为 .php 存储起来,使用的时候直接调用这个文件.那么如何使用 php 将数组保存为文本格式的文件呢?下面分享三种 ...

  9. virsh常用命令

    必须启动libvirtd,才能用virsh查看kvm后台. # systemctl start libvirtd 查看网络 # virsh net-list 启动default网络 # virsh n ...

  10. 【SpringMVC】SpringMVC系列1之HelloWorld

    SpringMVC之HelloWorld 概述 SpringMVC 是基于 MVC 设计理念的优秀Web 框架,是目前最主流的 MVC 框架之一.Spring3.0 后全面超越 Struts2,成为最 ...