1.創(chuàng)建和復制bean的標記
2.腳本變量定義標記
3.bean顯示標記
4.消息國際化標記
一.Bean復制標記
可定義新bean,可復制現(xiàn)有bean,還可從現(xiàn)有bean復制屬性。
<bean:define>標記用來:
定義新字符串常數(shù)
將現(xiàn)有的bean復制到新定義的bean對象
復制現(xiàn)有bean的屬性來創(chuàng)建新的bean
例如:定義一個bean:
<bean:define id=”test”value=”this is a test”/>
源bean在頁作用域中被拷貝請求作用域中的另一個bean:
<bean:define id=”targetBean”name=”sourceBean”
scope=”page”toScope=”request”/>
二.定義腳本變量的標記
從多種資源中定義和生成腳本變量,這些資源包括cookie,請求參數(shù),HTTP標頭等等。
屬性 描述
Id 腳本變量和要定義的頁作用域屬性的名稱
Name cookie/標頭/參數(shù)的名稱
multiple 如果這個屬性設置了任意一個數(shù)值,所有匹配的cookie都會被積累并存儲到一個Cookie [](一個數(shù)組)類型的bean里。若無設置,指定cookie的第一個值將作為Cookie類型的值
Value 如果沒有匹配的cookie或數(shù)值,就返回這個屬性指定的默認值
Id 腳本變量和要定義的頁作用域屬性的名稱
Name cookie/標頭/參數(shù)的名稱
multiple 如果這個屬性設置了任意一個數(shù)值,所有匹配的cookie都會被積累并存儲到一個Cookie [](一個數(shù)組)類型的bean里。若無設置,指定cookie的第一個值將作為Cookie類型的值
Value 如果沒有匹配的cookie或數(shù)值,就返回這個屬性指定的默認值
例如:
<bean:cookie id=”myCookie”name=”userName”/>
腳本變量名稱是myCookie,用來創(chuàng)建這個屬性的cookie的名稱是userName。
<bean:header id=”myHeader”name=”Accept-Language”/>
腳本變量名稱是myHeader,請求標頭的名稱是Accept-Language.
<bean:parameter id=”myParameter”name=”myParameter”>
腳本變量名稱是myPatameter,它保存的請求參數(shù)的名稱也是myParameter.
<bean:include>標記將對一個資源的響應進行檢索,并引入一個腳本變量和字符串類型的頁作用域屬性。這個資源可以是一個頁,一個ActionForward或一個外部URL。與<jsp:include>的不同是資源的響應被存儲到一個頁作用域的bean中,而不是寫入到輸出流。屬性如下:
屬性 描述
Id 腳本變量和要定義的頁作用域屬性的名稱
Page 一個內部資源forward一個ActionForward
Href 要包含的資源的完整URL
Id 腳本變量和要定義的頁作用域屬性的名稱
Page 一個內部資源forward一個ActionForward
Href 要包含的資源的完整URL
例如:<bean:include id=”myInclude”page=”MyJsp?x=1”/>腳本變量的名稱是myInclude,要檢索的響應來自資源MyJsp?x=1。
三.顯示BeanBean屬性
標記庫中定義了<bean:write>標記,用來將bean的屬性輸送到封裝的JSP頁寫入器。這個標記與<jsp:getProperty>類似,屬性如下:
屬性 描述
Name 要進行屬性顯示的bean的名稱
property 要顯示的屬性的名稱。如果這個屬性類有java.beans.PropertyEditor,getAsText()或toString方法會被調用
Scope Bean的作用域,若沒有設置,搜索范圍是從頁到應用程序作用域
Filter 如果設置true,屬性中的所有特殊HTML字符都將被轉化為相應的實體引用
Ignore 如果設置false,當發(fā)現(xiàn)屬性時會產(chǎn)生一個請求時間異常,否則返回null
Name 要進行屬性顯示的bean的名稱
property 要顯示的屬性的名稱。如果這個屬性類有java.beans.PropertyEditor,getAsText()或toString方法會被調用
Scope Bean的作用域,若沒有設置,搜索范圍是從頁到應用程序作用域
Filter 如果設置true,屬性中的所有特殊HTML字符都將被轉化為相應的實體引用
Ignore 如果設置false,當發(fā)現(xiàn)屬性時會產(chǎn)生一個請求時間異常,否則返回null
例如:<bean:write name=”myBean”property=”myProperty”scope=”request”filter=”true”/>myBean的屬性myProperty將會被顯示,作用域為請求,如果發(fā)現(xiàn)任何HTML特殊字符都將被轉化為相應的實體引用。
四.消息標記和國際化
struts框架支持國際化和本地化。用戶在他們的計算機中定義自己所在的區(qū)域,當web應用程序需要輸出一條消息時,它將引用一個資源文件,在這個文件中所有的消息都使用了適當?shù)恼Z言。一個應用程序可能提供了很多資源文件,每個文件提供了用不同語言編寫的消息。如果沒有找到所選語言的資源文件,就將使用默認的資源文件。
struts框架對國際化的支持是使用<bean:message>標記,以及使用java.util數(shù)據(jù)包中定義的Locale和ResourceBundle類來實現(xiàn)Java2平臺對這些任務的支持。Java.text.MessageFormat類定義的技術可以支持消息的格式。利用此功能,開發(fā)人員不需了解這些類的細節(jié)就可進行國際化和設置消息的格式。