- JSP 基礎教程
- JSP - 首頁
- JSP - 概述
- JSP - 環境設定
- JSP - 架構
- JSP - 生命週期
- JSP - 語法
- JSP - 指令
- JSP - 動作
- JSP - 隱式物件
- JSP - 客戶端請求
- JSP - 伺服器響應
- JSP - HTTP 狀態碼
- JSP - 表單處理
- JSP - 編寫過濾器
- JSP - Cookie 處理
- JSP - 會話跟蹤
- JSP - 檔案上傳
- JSP - 日期處理
- JSP - 頁面重定向
- JSP - 點選計數器
- JSP - 自動重新整理
- JSP - 傳送郵件
- 高階 JSP 教程
- JSP - 標準標籤庫
- JSP - 資料庫訪問
- JSP - XML 資料
- JSP - JavaBean
- JSP - 自定義標籤
- JSP - 表示式語言
- JSP - 異常處理
- JSP - 除錯
- JSP - 安全性
- JSP - 國際化
- JSP 有用資源
- JSP - 問答
- JSP - 快速指南
- JSP - 有用資源
- JSP - 討論
JSP - JavaBean
JavaBean 是一個用 Java 編寫並根據 JavaBeans API 規範編碼的特殊構造的 Java 類。
以下是將 JavaBean 與其他 Java 類區分開的獨特特徵:
它提供了一個預設的無引數建構函式。
它應該是可序列化的,並且可以實現 **Serializable** 介面。
它可能具有一些可以讀取或寫入的屬性。
它可能具有一些用於屬性的“**getter**”和“**setter**”方法。
JavaBean 屬性
JavaBean 屬性是可以由物件使用者訪問的命名屬性。該屬性可以是任何 Java 資料型別,包括您定義的類。
JavaBean 屬性可以是 **只讀、可寫、只讀** 或 **只寫**。JavaBean 屬性透過 JavaBean 實現類中的兩種方法訪問:
| 序號 | 方法和描述 |
|---|---|
| 1 | get**PropertyName**() 例如,如果屬性名稱為 *firstName*,則您的方法名稱將為 **getFirstName()** 以讀取該屬性。此方法稱為訪問器。 |
| 2 | set**PropertyName**() 例如,如果屬性名稱為 *firstName*,則您的方法名稱將為 **setFirstName()** 以寫入該屬性。此方法稱為修改器。 |
只讀屬性將僅具有 **getPropertyName()** 方法,而只寫屬性將僅具有 **setPropertyName()** 方法。
JavaBean 示例
考慮一個具有少量屬性的學生類:
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 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;
}
}
訪問 JavaBean
**useBean** 動作宣告一個 JavaBean 以在 JSP 中使用。聲明後,該 Bean 成為一個指令碼變數,可以被 JSP 中使用的指令碼元素和其他自定義標籤訪問。**useBean** 標籤的完整語法如下:
<jsp:useBean id = "bean's name" scope = "bean's scope" typeSpec/>
此處,**scope** 屬性的值可以是 **page、request、session** 或 **application**,具體取決於您的需求。**id** 屬性的值可以是任何值,只要它在同一 JSP 中的其他 **useBean 宣告**中是唯一的即可。
以下示例演示如何使用 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
訪問 JavaBean 屬性
除了 **<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** 屬性引用之前由 useBean 動作引入 JSP 的 JavaBean 的 id。**property** 屬性是應呼叫的 **get** 或 **set** 方法的名稱。
以下示例演示如何使用上述語法訪問資料:
<html>
<head>
<title>get and set properties Example</title>
</head>
<body>
<jsp:useBean id = "students" class = "com.tutorialspoint.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>
讓我們將 **StudentsBean.class** 可用於 CLASSPATH。訪問上述 JSP。將顯示以下結果:
Student First Name: Zara Student Last Name: Ali Student Age: 10