
- 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