2008-05-02
spring数据绑定功能
关键字: spring
1,主要是用到BeanWrapper,实际中可以用BeanWrapperImp(自定义一个数据绑定实现)
2,比如有一个公司,里面一个职员,得到公司的名称,地址等属于公司的属性,又要得到属于职员的属性,可以用BeanWrapper实现比如:
Company company=new Company();
BeanWrapper bw=new BeanWrapperImpl(company);
bw.setPropertyValue("name", "Chinasoft");
bw.setPropertyValue("addr[0]", "BeiJing");
bw.setPropertyValue("addr[1]","ShangHai");
bw.setPropertyValue("addr[2]", "ChangSha");
bw.setPropertyValue("huyong",new Employee());
bw.setPropertyValue("huyong.tel[home]", "07317450XXX");
bw.setPropertyValue("huyong.tel[mobile]", "1311752XXXX");
bw.setPropertyValue("huyong.salary", "10000");
当然Company和Employee两个类必须有对应属性的get和set方法
3,大概就是一个bean中的属性,通过BeanWrapper后,可以用这种方式setPropertyValue("属性",“值”)绑定起来,,具体的怎样绑定的已经让BeanWrapperImpl去实现了,我们只需要关联属性字段就可以了,Hibernate里面的集合赋值有点类似的味道!
4,PropertyEditor:当然springIoc加载的ApplicationContext.xml,把配置文件作为流读,里面所有的属性和值肯定都是以String的方式,但我们写bean的时候肯定有其他属性,比如其他基本类型,引用类型,我们可能没意识到这点,是怎么转变过来的勒,,其实是spring内建的PropertyEditor帮了我们,在BeanWrapperImp的实现类中已经注册好了,它们是作为可配置项实现的,所以我们也可以自己实现自己想要的装换,比如日期格式的问题,可以像这样2008-05-02变为2008/05/02等的。
自定实现需要扩展PropertyEditorSupport类,并覆盖setAsText(),在这个setAsText()方法里可以实现自己的格式等
配置bean:a,使用ConfigurableBeanFactory的registerCustomEditor()方法进行自定义PropertyEditor的注册,这不够灵活,不推荐使用
b,使用CustomEditorConfigurer对bean进行后期处理,处理过程终实现对自定义的PropertyEditor的绑定
总结:spring的PropertyEditor使用主要用在下面两个方面:
1,BeanFactory中,为Bean的属性赋值(一般从String(xml)转化为其他类型)
2,进行用户请求的参数转变(用户提交的参数都是string,当然上传文件等的除外,这里也要到了PropertyEditor进行对象类型的转换)
具体代码可以参考SSH集成整合宝典的spring核心讲解
2,比如有一个公司,里面一个职员,得到公司的名称,地址等属于公司的属性,又要得到属于职员的属性,可以用BeanWrapper实现比如:
Company company=new Company();
BeanWrapper bw=new BeanWrapperImpl(company);
bw.setPropertyValue("name", "Chinasoft");
bw.setPropertyValue("addr[0]", "BeiJing");
bw.setPropertyValue("addr[1]","ShangHai");
bw.setPropertyValue("addr[2]", "ChangSha");
bw.setPropertyValue("huyong",new Employee());
bw.setPropertyValue("huyong.tel[home]", "07317450XXX");
bw.setPropertyValue("huyong.tel[mobile]", "1311752XXXX");
bw.setPropertyValue("huyong.salary", "10000");
当然Company和Employee两个类必须有对应属性的get和set方法
3,大概就是一个bean中的属性,通过BeanWrapper后,可以用这种方式setPropertyValue("属性",“值”)绑定起来,,具体的怎样绑定的已经让BeanWrapperImpl去实现了,我们只需要关联属性字段就可以了,Hibernate里面的集合赋值有点类似的味道!
4,PropertyEditor:当然springIoc加载的ApplicationContext.xml,把配置文件作为流读,里面所有的属性和值肯定都是以String的方式,但我们写bean的时候肯定有其他属性,比如其他基本类型,引用类型,我们可能没意识到这点,是怎么转变过来的勒,,其实是spring内建的PropertyEditor帮了我们,在BeanWrapperImp的实现类中已经注册好了,它们是作为可配置项实现的,所以我们也可以自己实现自己想要的装换,比如日期格式的问题,可以像这样2008-05-02变为2008/05/02等的。
自定实现需要扩展PropertyEditorSupport类,并覆盖setAsText(),在这个setAsText()方法里可以实现自己的格式等
配置bean:a,使用ConfigurableBeanFactory的registerCustomEditor()方法进行自定义PropertyEditor的注册,这不够灵活,不推荐使用
b,使用CustomEditorConfigurer对bean进行后期处理,处理过程终实现对自定义的PropertyEditor的绑定
总结:spring的PropertyEditor使用主要用在下面两个方面:
1,BeanFactory中,为Bean的属性赋值(一般从String(xml)转化为其他类型)
2,进行用户请求的参数转变(用户提交的参数都是string,当然上传文件等的除外,这里也要到了PropertyEditor进行对象类型的转换)
具体代码可以参考SSH集成整合宝典的spring核心讲解
发表评论
- 浏览: 1679 次
- 性别:

- 来自: 长沙

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
开始我的技术Blog
支持一下呵呵。。
-- by hero9c1 -
开始我的技术Blog
都是一个不错的开始啊
-- by yexin218






评论排行榜