info.myKey = The numbers entered are {0},{1},{2},{3}
我們可使用下面的消息標記:
<bean:message key=”info.myKey” arg0=”5” arg1=”6” arg2=”7” arg3=”8”/>
這個信息標記輸出到JSP頁會顯示為:The numbers entered are 5,6,7,8
2.2 邏輯標記
邏輯庫的標記能夠用來處理外觀邏輯而不需要使用scriptlet。Struts邏輯標簽庫包含的標記能夠有條件地產生輸出文本,在對象集合中循環從而重復地產生輸出文本,以及應用程序流程控制。它也提供了一組在JSP頁中處理流程控制的標記。這些標記封裝在文件名為struts-logic.tld的標記包中。邏輯標記庫定義的標記能夠執行下列三個功能:
條件邏輯
重復
轉發/重定向響應
16
2.2.1 條件邏輯
struts有三類條件邏輯。第一類可以比較下列實體與一個常數的大。
cookie
請求參數
bean或bean的參數
請求標頭
以下列出了這一類標記:
標記功能<equal> 如果常數與被定義的實體相等,返回true <notEqual> 如果常數與被定義的實體不相等,返回true <greaterEqual> 如果常數大于等于被定義的實體,返回true <lessEqual> 如果常數小于等于被定義的實體,返回true <lessThan> 如果常數小于被定義的實體,返回true <greaterThan> 如果常數大于被定義的實體,返回true
這一類的所有標記有相同的屬性
屬性描述value 要進行比較的常數值Cookie 要進行比較的HTTP cookie的名稱Header 要進行比較的HTTP請求標頭的名稱parameter 要進行比較的HTTP請求參數的名稱Name 如果要進行比較的是bean或bean的屬性,則這個屬性代表bean的名稱property 要進行比較的bean屬性的名稱Scope Bean的作用域,如果沒有指定作用域,則它的搜索范圍是從頁到應用程序
例如:
<logic:equal parameter=”name” value=”SomeName”>
The entered name is SomeName
</logic:equal>
判斷名為”name”的請求參數的值是否是”SomeName”。
<logic:greaterThan name=”bean” property=”prop” scope=”page” value=”7”>
The value of bean.Prop is greater than 7
</logic:greaterThan>
判斷在頁的作用域中是否有一個名為”bean”的bean,它有一個prop屬性,這個屬性的值是否大于7。如果這個屬性能夠轉化為數值,就進行數值比較,否則就進行字符串比較。
第二類條件標記定義了兩個標記:
<logic:present>
<logic:notPresent>
它們的功能是在計算標記體之前判斷特定的項目是否存在。標記的屬性和屬性值決定了要進行檢查的項目。
屬性描述
17
Cookie 由這個屬性指定的cookie將被檢查是否存在Header 由這個屬性指定的請求標頭將被檢查是否存在parameter 由這個屬性指定的請求參數將被檢查是否存在Name 如果沒有設置property屬性,那么有這個屬性指定的bean將被檢查是否存在。如果設置了,那么bean和bean屬性都將被檢查是否存在。property 檢查有name屬性指定的bean中是否存在指定的屬性Scope 如果指定了bean的名稱,這就是bean的作用域。如果沒有指定作用域,搜索的范圍從頁到應用程序作用域。Role 檢查當前已經確認的用戶是否屬于特殊的角色User 檢查當前已經確認的用戶是否有特定的名稱
例如:
<logic:notPresent name=”bean” property=”prop” scope=”page”>
The bean property bean.prop is present
</logic:notPresent>
標記判斷在頁作用域中是否存在一個名為”bean”的bean,這個bean有一個prop屬性。
第三類條件標記比較復雜,這些標記根據模板匹配的結果檢查標記體的內容。換句話說,這些標記判斷一個指定項目的值是否是一個特定常數的子字符串:
<logic:match>
<logic:notMatch>
這些標記允許JSP引擎在發現了匹配或是沒有發現時計算標記主體。屬性如下:
文章來源于領測軟件測試網 http://www.kjueaiud.com/