test.jsp中的代碼如下所示
複製代碼 代碼如下:
<%@ page language = "java" import="test.SimpleBean;" %>
<html>
<head>
<title>JSP中使用 Java Bean的測試</title>
</head>
<body>
<jsp:useBean id="test" class="test.SimpleBean" />
<jsp:setProperty name="test" property="name" value="Hello JSP"/>
<jsp:setProperty name="test" property="message" value="fuck JSP"/>
<jsp:setProperty name="test" property="coon" value="fuck JSP"/>
<p>訊息:
<jsp:getProperty name="test" property="name" />
<br>
<jsp:getProperty name="test" property="message" />
<br>
<jsp:getProperty name="test" property="coon" />
</body>
</html>
<jsp:useBean id=”test” />:表示定義一個java bean的執行個體,執行個體的名稱是test,類的名稱是SimleBean。
<jsp:setProperty name=”test” property=”name” value=”Hello JSP”/>:表示設定執行個體test的屬性name,其值是”Hello JSP”。
<jsp:setProperty name=”test” property=”message” value=”fuck JSP”/>:表示設定執行個體test的屬性message,其值是”fuck JSP”。
<jsp:getProperty name=”test” property=”name” />:表示在頁面中輸出執行個體test的屬性name的值。
<jsp:getProperty name=”test” property=”message” />:示在頁面中輸出執行個體test的屬性message的值.
test.jsp檔案中用到的java bean 的代碼SimpleBean.java如下:
複製代碼 代碼如下:
package test;
public class SimpleBean {
private String name;
private String message;
private String conn;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getMessage()
{
return this.message;
}
public void setMessage(String message)
{
this.message = message;
}
public String getCoon()
{
return this.conn;
}
public void setCoon(String coon)
{
this.conn = this.message+" "+this.name;
}
}
1、 <jsp:useBean>
javaBean是特殊類型的java類,它與普通java類相比主要區別是包含了兩種特殊的方法:set…(設定屬性的方法)、get…(取屬性值的方法)。
<jsp:useBean>動作用來尋找或執行個體化一個jsp頁面使用的JavaBeans組件。
在程式中可把邏輯控制、資料庫操作放在javabeans組件中,然後在jsp檔案中調用它,這樣可增加程式的清晰度及程式的可重用性。
文法如下:
複製代碼 代碼如下:
<jsp:useBean id=”beanInstanceName”
scope=”page | request | session | application”
class=”package.claaa”
type=”package.claaa”
other elements
/>
屬性:
1) id=”beanInstanceName”
用來綁定Bean執行個體的變數。
2) class|type=”package.claaa”
表明該bean具體是對哪個類的執行個體化。
3) scope=”page | request | session | application”
表示該bean的有效範圍。
Page:執行個體的有效範圍是當前頁面。
Request:執行個體的有效範圍是一個單獨客戶請求的生命週期內。
Session:執行個體的有效範圍是整個使用者會話的生命週期內。
Application:執行個體的有效範圍是應用的生命週期內。
2、 <jsp:setProperty>
該動作的含義是使用bean中相應的set()方法設定一個或多個屬性的值,值的來源是通過value屬性明確給出,或者利用request對象中相應的參數。
假設某個bean有一個string類型的可被JSP檔案使用的屬性myProperty,則它必須有一個public方法setMyProperty(string value),<jsp:setProperty>動作使用的就是該方法。
文法如下:
複製代碼 代碼如下:
<jsp:setProperty name=”beanInstanceName”
property=”*” | property =”propertyName”
value=”具體的值”
/>
屬性:
1) name=”beanInstanceName”
這個屬性是必須的,用來表明對哪個bean執行個體執行下面的動作,這個值和動作<jsp:useBean>中定義的id必須對應起來,包括大小寫都必須一致。
2) property=”*” | property =”propertyName”
這個屬性是必須的,用來表示要設定哪個屬性。如果property的值是”*”,表示使用者在可見的JSP頁面中輸入的全部值,儲存在匹配的bean屬性中。匹配的方法是:bean的屬性名稱必須與輸入框的名字相同。
3) value=”具體的值”
它用來指定bean的屬性的值。
3、 <jsp:getProperty>
這個動作提取指定bean屬性的值,轉換成字串,然後輸出。該動作實際是調用了bean的get()方法。
按上文提到的某個bean有一個string類型的可被JSP檔案使用的屬性myProperty,它必須有一個傳回型別為string的public方法getMyProperty()。<jsp:getProperty>使用的就是這個方法。
文法如下:
複製代碼 代碼如下:
<jsp:getProperty name=”beanInstanceName” property=”propertyName”/>
屬性:
1) name=”beanInstanceName”
這個屬性是必須的,用來表明對哪個bean執行個體執行下面的動作,這個值和動作<jsp:useBean>中定義的id必須對應起來,包括大小寫都必須一致。
2) property=”*” | property =”propertyName”
這個屬性是必須的,用來表示要擷取哪個屬性。