JSP JavaBean
JavaBean是用Java,並根據JavaBeans的API規範編寫了一個特殊構造的Java類。
以下是區分一個JavaBean與其他Java類的獨有特性:
-
它提供了一個默認的無參數構造函數。
-
它應該是可序列化並實現Serializable接口。
-
它可以有許多可被讀出或寫入屬性。
-
它可能有多個“getter”和“setter”方法的屬性。
JavaBeans屬性:
JavaBean屬性是可以通過對象的用戶訪問的命名屬性。該屬性可以是任何Java數據類型,包括您定義的類。
JavaBean屬性可以讀,寫,隻讀或隻寫。 JavaBean的屬性是通過JavaBean中的實現類兩種方法訪問:
Method | 描述 |
---|---|
getPropertyName() | 例如,如果屬性名是firstName,方法名稱將是getFirstName()來讀取該屬性。這種方法被稱為訪問。 |
setPropertyName() | 例如,如果屬性名是firstName,方法名會被setFirstName()寫入屬性。這種方法被稱為賦值函數。 |
隻讀屬性將隻有一個getPropertyName()方法,以及一個隻寫屬性將隻有一個setPropertyName()方法。
JavaBeans實例:
考慮幾個屬性一個學生類:
package com.yiibai; public class StudentsBean implements java.io.Serializable { private String firstName = null; private String lastName = null; private int age = 0; public StudentsBean() { } public String getFirstName(){ return firstName; } public 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; } public void setAge(Integer age){ this.age = age; } }
訪問JavaBeans:
在useBean動作聲明一個JavaBean在JSP中使用。一旦聲明,該bean變成了可以在JSP中使用這兩個腳本元素和其他自定義標簽來訪問腳本變量。完整的語法useBean標記如下所示:
<jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>
這裡值的scope屬性可以根據您的需求頁麵,請求,會話或應用程序。 id屬性的值可以是任何值作為隻要它是其中在相同的JSP useBean的其他聲明的唯一名稱。
下麵的例子顯示了它的簡單用法:
<html> <head> <title>useBean Example</title> </head> <body> <jsp:useBean id="date" class="java.util.Date" /> <p>The date/time is <%= date %> </body> </html>
這將產生以下結果:
The date/time is Thu Sep 30 11:18:11 GST 2010
訪問JavaBeans屬性:
除了<jsp:useBean...>,可以使用<jsp:getProperty/>動作來訪問get方法和<jsp:setProperty/>動作來訪問set方法。下麵是完整的語法:
<jsp:useBean id="id" class="bean's class" 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屬性引用前麵介紹了JSP的useBean動作是JavaBean的id。屬性attribute是應該被調用get或set方法的名稱。
下麵是一個簡單的例子使用上麵的語法來訪問數據:
<html> <head> <title>get and set properties Example</title> </head> <body> <jsp:useBean id="students" class="com.yiibai.StudentsBean"> <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>
我們要在CLASSPATH中提供放入StudentsBean.class並嘗試訪問上麵的JSP。這將產生以下結果:
Student First Name: Zara Student Last Name: Ali Student Age: 10