JavaBeans - 维基百科,自由的百科全书
此條目没有列出任何参考或来源。 (2013年7月16日) |
JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
优点
[编辑]- Bean可以控制它的属性、事件和方法是否暴露给其他程序。
- Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
- 有软件可用来配置Bean。
- Bean的属性可以被序列化,以供日后重用。
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>