top
Loading...
JSP中JavaBean的應用
p> java server pages(jsp)組件技術的核心是被稱為bean的java 組件.bean的結構必須滿足一定的命名約定。JavaBean類似于ActiveX控件:他們都能提供常用功能并且可以重復使用。這些約定由sun和其他幾個大公司制定,稱為javabeans API.只要遵守java beansAPI的命名約定,就可以開發出可重用的,獨立的java組件。在jsp中,使用bean標簽集合,內容開發者不需要編寫任何代碼就能利用java 強大的功能為頁面添加動態元素。 在JSP的開發中往往把大段的代碼放在腳本片段(scriptlet)內,但是絕大多數的Java代碼屬于可重復使用的(如數據庫的連接待),因此可以把這此重復的代碼做成JavaBea的組件。JavaBean的值是通過一些屬性獲得的,你可通過這些屬性訪問JavaBean設置。現把在jsp中怎么調javaBean介紹如下:

要在JSP使用"Bean",首先必須在jsp設置要引用的Bean,生成Bean的一個實例。可以用“$#@60;jsp:useBean$#@62;”標記來完成:

$#@60;jsp:useBean id="Name" class="com.testbean" scope="application" /$#@62;。

"$#@60;jsp:useBean$#@62;"標記是通過“id”屬性來識鑒別Bean。當指定了"id"屬性后,還須告訴網頁面從何處查找Bean,或者它的Java類別名是什么。最后一個必需的元素是“scope”屬性。有了“scope”屬性的幫助,你就能告訴Bean為單一頁面(默認情況)[scope="page"]、為一個被請求的網頁[scope="request"]、請求為會話[scope="session"],或者為整個應用程序[scope="application"]保持留信息。有了會話范圍,你就能非常容易地在JSP網頁面上維護網站上的項目,如購物車項目等。

實例化一個JavaBean,就可以訪問它的屬性來定制它。要獲得屬性值,請用“$#@60;jsp:getProperty$#@62;”標記。使用這個標記能指定將要用到的Bean名稱(從useBean的"id"字段得到)以及你想得到其值的屬性。實際的值被放在輸出中:

$#@60;jsp:getProperty id="Name" property="name" /$#@62;。

要改變JavaBean屬性,你必須使用“$#@60;jsp:setProperty$#@62;”標記。對這個標記,需要再次識別Bean和其屬性,以修改并額外提供新值。如果命名正確,這些值可以從一個已提交的表中直接獲得:參數獲得:

$#@60;jsp:setProperty id="Name" property="*" /$#@62;;

可以從一個參數獲得,? 須直接命名屬性和參數:

$#@60;jsp:setProperty id="Name" property="serialNumber" value="string" /$#@62;

或者直接用一個名字稱和值來設置:

$#@60;jsp:setProperty id="Name" property="serialNumber" value= $#@60;%= expression %$#@62; /$#@62;.

關于JavaBean 的最后一件事: 為了Web服務器能找到JavaBean,你需要將其類別文件放在WEB服務器的一個特殊位置。在resin中是放在"docWEB-INFclasses"目錄下的。

實例:這個簡單的例子是完成對產品及稅率的設置與獲取。

package tax;
public class TaxRate{
String Product;
double Rate;
public TaxRate(){
this.Product = "A001";
this.Rate = 5;}
public void setProduct (String ProductName)
{this.Product = ProductName;}
public String getProduct(){return(this.Product);}
public void setRate (double rateValue)
{
this.Rate = rateValue;
}
public double getRate()
{
return (this.Rate);
}
}

sample_bean.jsp
$#@60;%@ page language="java" import="tax.*" %$#@62;
$#@60;HTML$#@62;
$#@60;BODY$#@62;
$#@60;jsp:useBean id="TaxRate" scope="application" class="TaxRate" /$#@62;
修改前:
$#@60;br$#@62;
產品 : $#@60;jsp:getProperty name="TaxRate" property="Product" /$#@62;
$#@60;br$#@62;
稅率 : $#@60;jsp:getProperty name="TaxRate" property="Rate" /$#@62;

$#@60;jsp:setProperty name="TaxRate" property="Product" value="Hello" /$#@62;
$#@60;jsp:setProperty name="TaxRate" property="Rate" value="2.9" /$#@62;
修改后:
$#@60;br$#@62;
產品 : $#@60;jsp:getProperty name="TaxRate" property="Product" /$#@62;
$#@60;br$#@62;
稅率 : $#@60;jsp:getProperty name="TaxRate" property="Rate" /$#@62;

$#@60;/BODY$#@62;$#@60;/HTML$#@62;

把TaxRate.java放到resin的"docWEB-INFclassesdoc"目錄下,sample_bean.jsp放入resin的doc目錄下。在瀏覽器下運行:http://localhost:8080/sample_bean.jsp即可看到效果。從以上的講解及應用可以看出:由于組件技術的使用和JAVABEANS API的引入,JSP讓JAVA開發者可以將一個站點快速地分解為一些細小的、可重用的組件。這些組件作為HTML元素,用于JSP的各個需要地方。這一實現讓開發工作清楚地分為表現與內容兩個部分。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗