如何实现自定义的属性编辑器
1、自定义一个实现了PropertyRegisterSuppor接口的编辑器
2、让spring感知到自己定义的编辑器:自定义个一个属性编辑器的注册器,实现PropertyEditeRegister接口
3、让spring 能够识别到对应的注册器
具体代码实现:
address类和custom类
public class Address {private String province;private String city;private String town;public String getProvince() {return province;}public void setProvince(String province) {this.province = province;}public String getCity() {return city;}public void setCity(String city) {this.city = city;}public String getTown() {return town;}public void setTown(String town) {this.town = town;}@Overridepublic String toString() {return "Address{" +"province='" + province + '\'' +", city='" + city + '\'' +", town='" + town + '\'' +'}';}
}
public class Customer {private String name;private Address address;public String getName() {return name;}public void setName(String name) {this.name = name;}public Address getAddress() {return address;}public void setAddress(Address address) {this.address = address;}@Overridepublic String toString() {return "Customer{" +"name='" + name + '\'' +", address=" + address +'}';}
}
值编辑器:
import java.beans.PropertyEditorSupport;public class AddressPropertyEditor extends PropertyEditorSupport {@Overridepublic void setAsText(String text) throws IllegalArgumentException {String[] s = text.split("_");Address address = new Address();address.setProvince(s[0]);address.setCity(s[1]);address.setTown(s[2]);this.setValue(address);}
}
值注册器:
import org.springframework.beans.PropertyEditorRegistrar;
import org.springframework.beans.PropertyEditorRegistry;import java.beans.PropertyEditor;public class AddressPropertyEditorRegistrar implements PropertyEditorRegistrar {@Overridepublic void registerCustomEditors(PropertyEditorRegistry registry) {registry.registerCustomEditor(Address.class,new AddressPropertyEditor());}
}
将注册器加入到spring中
import org.springframework.beans.PropertyEditorRegistrar;
import org.springframework.beans.factory.config.CustomEditorConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;import java.util.Arrays;
import java.util.Collections;@Configuration
public class AddressPropertyConfiguration {@Beanpublic static CustomEditorConfigurer editorConfigurer() {CustomEditorConfigurer customEditorConfigurer = new CustomEditorConfigurer();customEditorConfigurer.setPropertyEditorRegistrars(new PropertyEditorRegistrar[]{new AddressPropertyEditorRegistrar()});return customEditorConfigurer;}}
如何实现自定义的属性编辑器相关推荐
- springMVC4(9)属性编辑器剖析入参类型转换原理
我们通过Http请求提交的参数都以字符串的形式呈现,但最终在springMVC的方法入参中,我们却能得到各种类型的数据,包括Number.Boolean.复杂对象类型.集合类型.Map类型等,这些都是 ...
- 【Spring 基础篇三】属性注入与属性编辑器
上篇我们了解了一下applicationContext.xml的两种注入方式,本篇我们来了解一下关于属性的注入以及操作. 在敲代码的过程中,我们很容易遇到这样的问题,比如一个Lis ...
- 【Spring】—-常用属性注入及属性编辑器(三)
对于对象的注入,我们使用ref方式,可以指定注入的对象,下面看下属性的注入,以及当spring无法转换基本类型进行注入时,如何编写一个类似转换器的东西来完成注入. [属性注入] 常见属性的注入:int ...
- 【Java基础】属性编辑器PropertyEditor
在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值.BeanWrapper填充Bean属性时如何 ...
- 用mel编写自定义节点的属性编辑器界面
用mel编写自定义节点的属性编辑器界面比较麻烦,而且网上例子又少,下面给出一个范例,说明基本的格式 // 初始化节点时调用 global proc initControl(string $attrNa ...
- Spring - Java/J2EE Application Framework 应用框架 第 4 章 属性编辑器,数据绑定,校验与BeanWeapper(Bean封装)
第 4 章 属性编辑器,数据绑定,校验与BeanWeapper(Bean封装) 4.1. 简介 是否需要对业务逻辑进行验证是一个常见的问题. 有关这一点存在两种截然想法的回答,Spring提出的验证模 ...
- C#控件开发---控件属性编辑器
最近项目需要用到自定义控件的属性需要多选,我们知道默认的属性一般都是下拉输入之类的,也有多选,但是我需要的是checkbox,没有现成的,百度发现微软有提供接口UITypeEditor ,继承这个基类 ...
- Unity编辑器教程用法——自定义Inspector 面板编辑器Chinar
Chinar blog :www.chinar.xin 自定义Inspector 面板编辑器 本文提供全流程,中文翻译. Chinar 的初衷是将一种简单的生活方式带给世人 使有限时间 具备无限可能 ...
- C#自定义PropertyGrid属性
网络转载,原文来自:http://blog.csdn.net/lxping1012/article/details/7073944 最近用到了PropertyGrid,原来从来没用到过,拿在手里,一头 ...
最新文章
- 面试让你手写SQL的时候,你慌了没?
- Android Studio - HPROF文件查看和分析工具
- [导入]关于怎样通过xslt向.NET扩展函数传递OuterXml属性
- python 自然语言处理(二) jieba 分词
- 遇见C++ AMP:在GPU上做并行计算
- 【312】◀▶ arcpy 常用函数说明
- html 隐藏_HTML实战篇:纯css制作二级横向以及竖向菜单导航
- UML图---基本概念
- app营销实训报告_第七届全国金融与证券投资模拟实训大赛圆满落幕!
- 【OCR技术】大批量生成文字训练集
- 计算机之间是如何进行通信的?;详解三次握手和四次挥手
- 【转】图的割点、桥与双连通分支
- javascript中replace的正则表达式语法
- 微信小程序(云开发)----微信支付
- usbserialch340驱动安装失败_CH340驱动|CH340系列USB转串口驱动下载win7/win10 64位 - 欧普软件下载...
- linux下反汇编命令,Linux下反汇编指定的函数
- 五线谱音名和组别对照表_五线谱上区别各个音的组别
- vue生命周期学习(watch跟computed)
- 项目管理助力组织赢在VUCA时代
- 联想小新pro14 2022款和2021款的区别