JavaBean

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

javaBean条件

1.java类

2.无参构造函数

3.成员变量都是PRivate

4.可以提供public get set

------------------------------------------

单例:

1.private构造函数

2.private static 实例对象

3.public static 对象访问方法

--------------------------------------------

JavaBean属性

1.必须小写字母开始

2.属性可以提供public的get和set方法

*命名规则:name, getName, setName

--------------------------

实际开发中,使用Model2,所有javaben相关的标签使用非常少

-------------------------

内省是什么?

JDK提供的一套JavaBean操作API

基于反射技术的。

javaBean的属性计算方法

1.Introspector类的getBeanInfo()方法

BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);

Person{

name,age

getName

getAge

setName

setAge

}

BeanInfo里面

1.getMethodDescriptors()

2.getProperyDescriptors() -------重点

//获得所有javaben属性

PropertyDescriptor[] pd= beanInfo.getPropertyDescriptors();

//每一个属性描述代表javaben的一个属性

sysout(pd.length); //4个

因为javaben属性不是通过成员变量计算的,而是通过get和set方法计算的。

例如:getName ------去掉get,将Name首字母小写,得到name属性。

以此类推,所以有4个。

每一个对象都继承Object,继承getClass()方法 --得到class属性

------------------------

BeanUtils一套开发包

BeanUtils.populate(person, request.getParameterMap());

如果在Person类添加特殊Date类型,对于特殊类型如何封装?

1.自定义转换器----需要实现Converter接口

2.在调用populate方法前,注册转换器

ConvertUtils.register(Converter converter, Class clazz);

结论:

1.如果form参数是String类型,javabean属性String类型----调用BeanUtils.populate将fomr数据封装

2.如果javabean属性类型不是string,将form数据封装javaben 需要转换器----在BeanUtils API提供很多默认转换器

3.如果需要转换类型非常特殊,通过自定义转换器完成。定义类实现接口Converter,实现convert方法

在populate调用之前通过ConvertUtils.register注册转换器

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航