作者:天馬
雖然你可以把大段的代碼放在腳本片段(scriptlet)內,但是絕大多數的Java代碼屬於可重復使用的名為JavaBea的組件。JavaBean類似於ActiveX控件:他們都能提供常用功能並且可以重復使用。
JavaBean的值是通過一些屬性獲得的,你可通過這些屬性訪問JavaBean設置。以一個人來打比方,這個人就是一個JavaBean,這個人的名字、身份證號碼以及住址就是其屬性。在JSP網站,你基本上就是通過玩“Connect the beans)”來使你的網站動態化。
假設JavaBean先於網站被創建出來,你需要做的第一件事就是告訴JSP頁面它將要用到一個“Bean”。你可以用“<jsp:useBean>”標記來做到這一點:
<jsp:useBean id="localName" class="com.jguru.Person" scope="application" />。
“<jsp:useBean>”標記要求你用“id”屬性來識鑒別Bean。這裡你提供一個名字來JSP頁面其余部分的Bean。除了“id”屬性,你還須告訴網頁面從何處查找Bean,或者它的Java類別名是什麼。這種類別屬性提供確 認Bean的功能,其他一些方法也可以做到這一點。最後一個必需的元素是“scope”屬性。有了“scope”屬性的幫助,你就能告訴Bean為單一頁面(默認情況)[scope="page"]、為[scope="request"]請求為會話[scope="session"],或者為整個應用程序[scope="application"]保持留信息。有了會話范圍,你就能非常容易地在JSP網頁面上維護購物車等項目。
一旦你聲名了一個JavaBean,你就可以訪問它的屬性來定制它。要獲得屬性值,請用“<jsp:getProperty>”標記。有了這個標記,你就能指定將要用到的Bean名稱(從useBean的"id"字段得到)以及你想得到其值的屬性。實際的值被放在輸出中:
<jsp:getProperty id="localName" property="name" />。
要改變JavaBean屬性,你必須使用“<jsp:setProperty>”標記。對這個標記,你需要再次識別Bean和屬性,以修改並額外提供新值。如果命名正確,這些值可以從一個已提交的表中直接獲得:參數獲得:
<jsp:setProperty id="localName" property="*" />;
可以從一個參數獲得,但你必須直接命名屬性和參數:
<jsp:setProperty id="localName" property="serialNumber" value="string" />
或者直接用一個名字稱和值來設置: <jsp:setProperty id="localName" property="serialNumber" value= <%= expression %> />.
關於JavaBean 的最後一件事: 為了Web服務器能找到JavaBean,你需要將其類別文件放在一個特殊位置。用JSWDK,最 方便的位置是安裝目錄下的類別目錄,如jswdk-1.0.1classes。