一、JavaBean的特点
- JavaBean的属性私有化
- JavaBean具有无参构造方法
- JavaBean的属性具有getter和setter方法
- JavaBean需实现系列化接口
使用JavaBean的原因
- 程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服务于某一个程序,而且每JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean大大简化了程序的设计过程,也方便了其他程序的重复使用。
- JavaBean传统应用于可视化领域,如AWT(窗口工具集)下的应用。而现在,JavaBean更多地应用于非可视化领域,同时,JavaBean在服务器端的应用也表现出强大的优势。非可视化的JavaBean可以很好地实现业务逻辑、控制逻辑和显示页面的分离,现在多用于后台处理,使得系统具有更好的健壮性和灵活性。JSP + JavaBean和JSP + JavaBean + Servlet成为当前开发Web应用的主流模式。
下面我就简单的举个小例子来创建一个JavaBean
package blog.csdn.joywy;
public class user{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
二、JavaBean的封装
1. 手动封装
实现原理很简单,封装起来却相当的繁琐
- 创建一个JavaBean对象
- 通过getParameter(String name)方法可以得到对应的参数
- 通过setParaeter(String name)方法将参数封装到JavaBean对象当中
2. 使用工具封装
为了取代繁琐的手动封装过程,我们可以采用BeanUtils工具进行封装
导入commons-beanutils-1.8.3、 commons-logging-1.1.1包,我采用的是上述两个包,大家可以自己选取适合的版本。
通过BeanUtils.populate(user, request.getParameterMap());方法大家就可以将一个名字为user的对象进行封装。
1.JavaBean封装之日期转换问题
熟悉java开发的人就会很清楚,BeanUtils并不是万能的,在封装中可能面临着属性类型转换的问题,JavaBean只能对基本类型的数据进行封装,引用类型的数据则需要转换,我们以Date数据类型的转换为例,来说明引用类型的转换过程
这里我们就要通过以下方法解决该文题
- 首先我们需要在BeanUtils.populate(user, request.getParameterMap());这个方法之前创建一个日期转换对象
DateConverter dc=new DateConverter();
- 接着,我们可以设置日期的格式
dc.setPattern("yyyy-MM-dd");
- 最后将我们的日期格式进行注册就行了
ConvertUtils.register(dc, java.util.Date.class);