struts bean標(biāo)簽庫
Struts bean標(biāo)簽庫中的標(biāo)簽可以訪問已經(jīng)存在的javabean以及它們的屬性,還可以定義新的bean,把它存放在page范圍內(nèi)或者用戶指定的范圍內(nèi),供網(wǎng)頁內(nèi)其它元素訪問。
bean標(biāo)簽庫中的標(biāo)簽大致分為以下三類
1.用于訪問http請求信息或jsp隱含對象的bean標(biāo)簽
<bean:cookie>:訪問cookie信息
???id屬性:定義一個javax.servlet.http.Cookie類型的變量,該變量存放在page范圍內(nèi)
???name屬性:指定Cookie的名字
???value屬性:指定cookie的默認(rèn)值。如果由name屬性指定的Cookie不存在,就使用value屬性指
???????????????????????定的默認(rèn)值
???multiple屬性:如果設(shè)置了該屬性(可以設(shè)置為任意一個字符串),可以檢索出所有和cookie名
???????????????????????????字匹配的cookie。此時id屬性定義了一個cookie數(shù)組類型的變量,而不是單個
???????????????????????????cookie類型的變量
<bean:header>:訪問http請求中的header信息
???id屬性:定義一個java.lang.String類型的變量,該變量存放在page范圍內(nèi)
???name屬性:指定需要檢索的header信息
<bean:parameter>:訪問請求參數(shù)
???id屬性:定義一個java.lang.String類型的變量,該變量存放在page范圍內(nèi)
???name屬性:指定請求參數(shù)名
???value屬性:指定請求參數(shù)的默認(rèn)值
<bean:page>:訪問jsp隱含對象
???id屬性:定義一個引用隱含對象的變量,該變量存放在page范圍內(nèi)
???property屬性:指定隱含對象的名字,可選值包括application,config,request,response,session
2.用于訪問web應(yīng)用資源的bean標(biāo)簽
<bean:message>:輸出Resource Bundle中的一條消息
???bundle屬性:指定Resource Bundle,和struts配置文件的<message-resources>元素的
????????????????????????? key屬性匹配,如果沒有配置bundle屬性,就采用默認(rèn)的Resource Bundle
???key屬性:指定消息key
???在<bean:message>標(biāo)簽中指定消息key有三種方式:
?????????(1).<bean:message>標(biāo)簽的key屬性直接指定消息key
?????????(2).<bean:message>標(biāo)簽的name屬性指定一個可以轉(zhuǎn)化為字符串的變量,這個變量的
??????????????? 字符串值為消息key
?????????(3).同時指定<bean:message>標(biāo)簽的name屬性和property屬性。name屬性指定一個
?????????????????javabean,property屬性指定javabean的一個屬性,這個javabean的屬性的值就
?????????????????是消息key
?????????對于帶參數(shù)的復(fù)合消息,可以使用<bean:message>標(biāo)簽的arg0、arg1、arg2、arg3、arg4
?????????屬性來設(shè)置參數(shù)值
<bean:resource>:用于檢索web資源的內(nèi)容
???id屬性:定義一個代表web資源的變量
???name屬性:指定web資源的路徑
???input屬性:如果沒有設(shè)置input屬性,則id屬性定義的變量為字符串類型,如果給input屬性
????????????????????? 設(shè)置了值(可以是任意字符串),則id屬性定義的變量為java.io.InputStream類型
<bean:struts>:檢索struts框架內(nèi)在的對象(如ActionFormBean,ActionForward或
??????????????????????????ActionMapping)。必須設(shè)置formbean,forward或mapping屬性中的一個屬性
???id屬性:定義一個page范圍的變量,用來引用struts框架的內(nèi)在對象
???formbean屬性:指定ActionFormBean對象,和配置文件的<form-bean>元素匹配
???forward屬性:指定ActionForward對象,和配置文件的<global-forwards>元素的<forward>
???????????????????????????子元素匹配
???mapping屬性:指定ActionMapping對象,和配置文件的<action>元素匹配
<bean:include>:包含其它web資源的內(nèi)容,和標(biāo)準(zhǔn)jsp標(biāo)簽<jsp:include>相似,區(qū)別在于
??????????????????????????? <bean:include>把其他web資源的內(nèi)容存放在一個變量中,而不是顯示在
??????????????????????????? 網(wǎng)頁上
???id屬性:定義一個代表其他web資源的變量
???forward屬性:指定全局轉(zhuǎn)發(fā)路徑,和配置文件的<global-forwards>元素中的<forward>
???????????????????????????子元素匹配
???page屬性:指定相對于當(dāng)前應(yīng)用的URI,以“/”開頭
???href屬性:指定完整的URL
3.用于定義或輸出javabean的bean標(biāo)簽
<bean:define>:定義一個變量
???id屬性:指定變量的名字
???toScope屬性:指定這個變量的存放范圍,如果沒有設(shè)置toScope屬性,則這個變量存放在
??????????????????????????? page范圍內(nèi)
???scope屬性:指定javabean范圍
???給id屬性定義的變量賦值有三種方式:
??????(1).設(shè)置value屬性,此時id屬性定義的變量為字符串類型,value屬性代表這個變量的
??????????????字符串值
??????(2).同時設(shè)置name和property屬性。name屬性指定一個已經(jīng)存在的bean,property屬性
?????????????指定已經(jīng)存在的bean的某個屬性,id屬性定義的變量的值由property屬性決定
??????(3).同時設(shè)置name屬性和type屬性。name屬性指定一個已經(jīng)存在的javabean,type屬性
?????????????指定這個javabean的完整類名,id屬性定義的變量引用這個已經(jīng)存在的javabean
??????????????對于由name屬性指定的已經(jīng)存在的javabean,在默認(rèn)情況下<bean:define>標(biāo)簽會
??????????????依次在page,request,session和application范圍尋找這個javabean,也可以設(shè)置scope
??????????????屬性,明確指定這個javabean的范圍
<bean:write>:顯示javabean或其屬性的內(nèi)容
???name屬性:指定已經(jīng)存在的變量
???property屬性:指定bean的屬性
???format屬性:設(shè)置輸出數(shù)據(jù)的格式
???filter屬性:默認(rèn)值為true。如果值為true,將把輸出內(nèi)容中特殊的HTML符號作為普通字符串
?????????????????????顯示,如果為false,則不會轉(zhuǎn)化為普通字符串
???如果希望輸出bean的某個屬性值,應(yīng)該同時設(shè)置name屬性和property屬性
<bean:size>:獲得Map或Collection集合的長度
???id屬性:定義一個Integer類型的變量,值為Map,collection或數(shù)組的長度
???name屬性:指定已經(jīng)存在的Map,collection或數(shù)組變量
大多數(shù)bean標(biāo)簽具有以下共同屬性:
???id屬性:定義一個變量,默認(rèn)情況下該變量存放在page范圍內(nèi)。對于<bean:define>標(biāo)簽,它
?????????????????的toScope屬性可以指定這個變量的存放范圍
???name屬性:指定已經(jīng)存在的javabean的名字。property屬性指定這個javabean的某個屬性,
????????????????????????scope屬性指定這個javabean的范圍,可選值為page,request,session和application
????????????????????????如果沒有設(shè)置scope屬性,將依次從page,request,session和application范圍內(nèi)尋
????????????????????????找這個javabean
posted on 2006-12-07 10:06 寶貝小豬嘜 閱讀(420) 評論(0) 編輯 收藏 所屬分類: 框架&設(shè)計模式