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>