跳至內容

JavaBeans

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

JavaBeansJava中一種特殊的,可以將多個對象封裝到一個對象(bean)中。特點是可序列化,提供無參構造器英語Nullary constructor,提供getter方法和setter方法訪問對象的屬性。名稱中的「Bean」是用於Java的可重用軟件組件的慣用叫法。

優點

  • Bean可以控制它的屬性、事件和方法是否暴露給其他程序。
  • Bean可以接收來自其他對象的事件,也可以產生事件給其他對象。
  • 有軟件可用來配置Bean。
  • Bean的屬性可以被序列化,以供日後重用。

JavaBeans規範

要成為JavaBean類別,則必需遵循關於命名、構造器、方法的特定規範。有了這些規範,才能有可以使用、復用、替代和連接JavaBeans的工具。

規範如下:

  • 有一個public的無參數建構子。
  • 屬性可以透過getsetis(可替代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>

參考文獻

外部連結