1. JavaBeans
JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供 getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
2. 优点
Bean可以控制它的属性、事件和方法是否暴露给其他程序。
Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
有软件可用来配置Bean。
Bean的属性可以被序列化,以供日后重用。
3. JavaBeans规范
要成为JavaBean类,则必须遵循关于命名、构造器、方法的特定规范。有了这些规范,才能有可以使用、复用、替代和连 接JavaBeans的工具。
规范如下:
有一个public的無參數建構子。
属性可以通过get、set、is(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问。
可序列化。
package player;
public class PersonBean implements java.io.Serializable {
/*** name 属 性 ( 注 意 大 小 写 ) */
private String name = null;
private boolean deceased = false;
/**无 参 构 造 器 ( 没 有 参 数 ) */
public PersonBean() { }
/*** name 属 性 的 Getter方 法*/
public String getName() {
return name;
}
/* name 属 性 的 Setter方 法* @param value */
public void setName(final String value) {
name = value;
}
/** * deceased 属 性 的 Getter方 法* 布 尔 型 属 性 的 Getter方 法 的 不 同 形 式 ( 这 里 使 用 了 is 而 非 get) */
public boolean isDeceased() {
return deceased;
}
/*** deceased 属 性 的 Setter方 法* @param value */
public void setDeceased(final boolean value) {
deceased = value;
}
}
TestPersonBean.java :
import player.PersonBean ;
/** * <code>TestPersonBean</code>类*/
public class TestPersonBean {
/*** PersonBean 类 测 试 方 法 的 main函 数* @param ARGS */
public static void main(String[] args) {
PersonBean person = new PersonBean();
person.setName("张三");
person.setDeceased(false);
// 输 出 : " 张 三 [ 活 着 ]"
System.out.print(person.getName());
System.out.println(person.isDeceased() ? " [已故]" : " [活着]");
}
}
testPersonBean.jsp
<% // 在JSP中使用PersonBean类 %> <jsp:useBean id="person" class="player.PersonBean" scope="page"/> <jsp:setProperty name="person" property="*"/>
<html> <body> 姓名:<jsp:getProperty name="person" property="name"/><br/> 已故与否?<jsp:getProperty name="person" property="deceased"/><br/> <br/> <form name="beanTest" method="POST" action="testPersonBean.jsp" > 输入姓名:<input type="text" name="name" size="50"><br/> 选择选项: <select name="deceased"> <option value="false">活着</option> <option value="true">已故</option> </select> <input type="submit" value="测试这个JavaBean"> </form> </body> </html>