JavaBean是一種專門構建的Java類,它使用Java編寫,並根據JavaBeans API規範進行編碼。
以下是將JavaBean與其他Java類有區別的獨特特徵 -
Serializable
介面。getter
和setter
方法的屬性。JavaBean
屬性是可由物件的使用者存取的命名屬性。該屬性可以是任何Java資料型別,包括定義的類。JavaBean
屬性可能被讀取,寫入,唯讀或只寫。JavaBean
屬性通過JavaBean
實現類中的兩種方法進行存取 -
編號 | 方法 | 描述 |
---|---|---|
1 | getPropertyName() | 例如,如果PropertyName是firstName ,那麼方法名稱將是getFirstName() ,它用來來讀取該屬性的值。這種方法稱為存取器。 |
2 | setPropertyName() | 例如,如果PropertyName名稱是firstName ,那麼方法名稱將為setFirstName() 來寫入該屬性的值。這種方法叫賦值函式。 |
唯讀屬性將只有一個getPropertyName()
方法,只寫屬性將只有一個setPropertyName()
方法。
為了更好地演示如何使用JavaBean,我們開啟Eclipse,建立一個動態Web專案:JavaBean,其專案結構如下所示 -
考慮一個擁有幾個屬性的學生(Student
)類 -
檔案:Student.java
package com.yiibai;
public class Student {
private String name;
private String from;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
useBean
動作宣告一個用於JSP的JavaBean。當宣告了之後,該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 20 13:18:11 GST 2017
與<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
。屬性是應該呼叫的get
或set
方法的名稱。
以下範例顯示如何使用上述語法存取資料。
檔案:index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP+JavaBean</title>
</head>
<body>
<div style="margin:auto; width: 90%">
<!-- 設定學生資訊 -->
<jsp:useBean id="student" class="com.yiibai.Student">
<jsp:setProperty name="student" property="name" value="蘇小牛" />
<jsp:setProperty name="student" property="from" value="Haikou" />
<jsp:setProperty name="student" property="age" value="25" />
</jsp:useBean>
<p>
學生姓名:
<jsp:getProperty name="student" property="name" />
</p>
<p>
所在地:
<jsp:getProperty name="student" property="from" />
</p>
<p>
年齡:
<jsp:getProperty name="student" property="age" />
</p>
</div>
</body>
</html>
在編寫完成上面範例程式碼後,執行專案並開啟瀏覽器存取URL:http://localhost:8080/JavaBean/index.jsp
, 得到以下結果 -