JavaBean是特殊的Java類,是用Java語言寫成的可重複使用元件,並且遵守JavaBeans API規格。
接下來給出的是JavaBean與其它Java類別相比而言獨一無二的特徵:
提供一個預設的無參構造函數。
需要被序列化並且實作了Serializable介面。
可能有一系列可讀寫屬性。
可能有一系列的"getter"或"setter"方法。
一個JavaBean物件的屬性應該是可存取的。這個屬性可以是任意合法的Java資料類型,包括自訂Java類別。
一個JavaBean物件的屬性可以是可讀寫,或只讀,或只寫。 JavaBean物件的屬性透過JavaBean實作類別中提供的兩個方法來存取:
方法 | 描述 |
---|---|
get PropertyName () | 舉例來說,如果屬性的名稱是myName,那麼這個方法的名字就要寫成getMyName()來讀取這個屬性。這個方法也稱為訪問器。 |
set PropertyName () | 舉例來說,如果屬性的名稱是myName,那麼這個方法的名字就要寫成setMyName()來寫入這個屬性。這個方法也稱為寫入器。 |
一個唯讀的屬性只提供getPropertyName()方法,一個只寫的屬性只提供setPropertyName()方法。
這是StudentBean.java檔:
package com.tutorialspoint;public class StudentsBean implements java.io.Serializable{ private String firstName = null; private String lastName = null; private int age = 0; public StudentsBean() { } public String getFirName); String getLastName(){ return lastName; } public int getAge(){ return age; } public void setFirstName(String firstName){ this.firstName = firstName; } public void setLastName(String lastName){ this.lastName = lastName; ){ this.age = age; }}
編譯StudentBean.java文件,在本章最後的範例中將會使用到它。
<jsp:useBean>標籤可以在JSP中聲明一個JavaBean,然後使用。宣告後,JavaBean物件就成了腳本變量,可以透過腳本元素或其他自訂標籤來存取。 <jsp:useBean>標籤的語法格式如下:
<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>
其中,根據具體情況,scope的值可以是page,request,session或application。 id值可任意只要不和同一JSP檔中其它<jsp:useBean>中id值一樣就行了。
接下來給的是<jsp:useBean>標籤的一個簡單的用法:
<html><head><title>useBean Example</title></head><body><jsp:useBean id="date" /> <p>The date/time is <%= date %></body ></html>
它將產生以下結果:
The date/time is Thu Sep 30 11:18:11 GST 2013
在<jsp:useBean>標籤主體中使用<jsp:getProperty/>標籤來呼叫getter方法,使用<jsp:setProperty/>標籤來呼叫setter方法,語法格式如下:
<jsp:useBean id="id" scope="bean's scope"> <jsp:setProperty name="bean's id" property="property name" value="value"/> <jsp:getProperty name="bean's id" property ="property name"/> ...........</jsp:useBean>
name屬性指的是Bean的id屬性。 property屬性指的是想要呼叫的getter或setter方法。
接下來給出使用以上語法進行屬性存取的一個簡單範例:
<html><head><title>get and set properties Example</title></head><body><jsp:useBean id="students" > <jsp:setProperty name="students" property="firstName" value ="Zara"/> <jsp:setProperty name="students" property="lastName" value="Ali"/> <jsp:setProperty name="students" property="age" value="10"/></jsp:useBean><p>Student First Name: <jsp:getProperty name="students" property="firstName"/></p> <p>Student Last Name: <jsp:getProperty name="students" property="lastName"/></p><p>Student Age: <jsp:getProperty name="students" property="age"/></p></body></html>
將StudentBean.class加入CLASSPATH環境變數中,然後存取以上JSP,運行結果如下:
Student First Name: Zara Student Last Name: Ali Student Age: 10