Struts之bean標(biāo)簽庫(kù)詳解
Struts Bean標(biāo)簽庫(kù)中的標(biāo)簽可以訪問(wèn)已存在的JavaBean以及它們的屬性,還可以定義新的Bean,把它存放在page范圍內(nèi)或用戶指定的范圍內(nèi),供網(wǎng)頁(yè)其他元素訪問(wèn)。Bean標(biāo)簽庫(kù)大概分為三類:
- 用于訪問(wèn)HTTP請(qǐng)求信息或JSP隱含對(duì)象的Bean標(biāo)簽
- 用于訪問(wèn)Web應(yīng)用資源的Bean標(biāo)簽
- 用于定義或者輸出JavaBean的Bean標(biāo)簽
訪問(wèn)HTTP請(qǐng)求信息或JSP隱含對(duì)象
- <bean:cookie>:訪問(wèn)Cookie信息
- <bean:header>:訪問(wèn)HTTP請(qǐng)求中的Header信息
- <bean:parameter>;訪問(wèn)請(qǐng)求參數(shù)。
- <bean:page>:訪問(wèn)JSP隱含對(duì)象。
1.<bean:cookie>標(biāo)簽
該標(biāo)簽可以檢索保存在瀏覽器中的Cookie,具有屬性id,name,multiple,value,id是對(duì)cookie在該頁(yè)面中的唯一標(biāo)識(shí),在頁(yè)面其它地方可以通過(guò)id進(jìn)行引用。相當(dāng)于用cookie直接引用。Name是相應(yīng)的cookie名稱。Multiple可以賦予任意值,如果設(shè)置了該屬性,可以檢索出所有和Cookie名字匹配的Cookie名字匹配的Cookie,此時(shí),id屬性定義了一個(gè)Cookie數(shù)組類型的變量,而不是單個(gè)Cookie類型的變量。例如:
<bean:cookie id="myCookie" name="tags/cookiedemo" value="ddddddddd"/>
<%
%>
2.<bean:header>標(biāo)簽
該標(biāo)簽用于檢索HTTP請(qǐng)求中的Header信息。如果沒(méi)有指定multiple屬性則依據(jù)剛?cè)』氐闹祫?chuàng)建一個(gè)String類型的bean。如果指定了multiple屬性則依據(jù)剛?cè)』氐闹祫?chuàng)建一個(gè)String[]類型的數(shù)組。例如:
<logic:present header="User-Agent">
%>
</logic:present>
3.<bean:parameter>標(biāo)簽
該標(biāo)簽用于檢索HTTP請(qǐng)求參數(shù),具有以下屬性:
id屬性:定義一個(gè)java.lang.String類型的變量,這個(gè)變量存放在page范圍內(nèi)。
name屬性:指定請(qǐng)求參數(shù)名。
value屬性:請(qǐng)求指定參數(shù)的默認(rèn)值
如果沒(méi)有指定multiple屬性則依據(jù)剛?cè)』氐闹祫?chuàng)建一個(gè)String類型的bean。如果指定了multiple屬性則依據(jù)剛?cè)』氐闹祫?chuàng)建一個(gè)String[]類型的數(shù)組。例如:
<html:link page="/parameter2.jsptestString=this+is+a+test&testInt=123456">
</html:link>
<bean:parameter id="test1" name="testString" value="" />
<bean:parameter id="test2" name="testInt" value=""/>
4.<bean:page>標(biāo)簽
該標(biāo)簽用于檢索獲取JSP隱含對(duì)象,如session、request和response等,具有以下屬性:
id屬性:定義了一個(gè)引用隱含對(duì)象的變量,這個(gè)變量存放在page范圍
property屬性:指定隱含對(duì)象的名字,可選值包括application,config,request,response,session 例如:
<bean:page id="mySession" property="session"/>
<%
%>
<bean:message>:顯示Resource Bundle中的消息。
<bean:resource>;把Web資源裝載到一個(gè)JavaBean中。
<bean:struts>;訪問(wèn)Struts的內(nèi)在配置對(duì)象。
<bean:include>;包含一個(gè)web資源。
<bean:write name="value" filter="false"/><br/>
%>
message2=this is a test too!
該標(biāo)簽用于檢索、獲得Web資源內(nèi)容,如:網(wǎng)頁(yè)的源代碼。該標(biāo)簽的屬性有:id有其他標(biāo)簽一樣,name指定Web資源的路徑,input如果沒(méi)有設(shè)置,則id屬性默認(rèn)為一個(gè)字符類型對(duì)象,如果給input賦值yes,則id屬性所定義的對(duì)象為java.IputStream。例如:
該標(biāo)簽用于獲取Struts框架內(nèi)的一些對(duì)象,如AationForm和ActionForward等。。<bean:struts>標(biāo)簽的id屬性定義一個(gè)page范圍的變量,用來(lái)引用Struts框架的內(nèi)在對(duì)象,必需設(shè)置formbean,forward,mapping屬性中的一個(gè)屬性,來(lái)指定被引用的Struts內(nèi)在對(duì)象。
name:<bean:write name="listFormBean" property="name"/><br/>
type:<bean:write name="listFormBean" property="type"/><br/>
dynamic:<bean:write name="listFormBean" property="dynamic"/><br/>
<bean:write>: 顯示JavaBean屬性的內(nèi)容。
<bean:size>: 獲得集合對(duì)象或數(shù)組對(duì)象的長(zhǎng)度。
第一種是,通過(guò)value屬性直接賦值;
第二種是,通過(guò)name和porperty共同指定一個(gè)變量來(lái)給id所定義的變量,name——bean,porperty——屬性;
第三種是,通過(guò)type屬性和name聯(lián)合指定id所定義的變量類型,type——id定義變量的完整類型,name——存在的javaBean。例如:
%>
<bean:define id="milliseconds" name="currDate" property="time"/>
id屬性定義一個(gè)Integer類型的變量,那么屬性指定已經(jīng)存在的Map,Collection或數(shù)組變量,id屬性定義的變量值為Map,collection或數(shù)組的長(zhǎng)度。
name屬性為對(duì)象名字。例如:
ArrayList testlist=new ArrayList();
testlist.add(new Integer(1));
testlist.add(new Integer(2));
testlist.add(new Integer(3));
<%
String a = "string for test";
pageContext.setAttribute("test",a);
%>
<bean:write name="test"/>
posted on 2011-02-22 09:10 小羅 閱讀(253) 評(píng)論(0) 編輯 收藏