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”
這個屬性是必須的,用來表示要獲取哪個屬性。