【原創】Struts1.x系列教程(7):Logic標籤庫

銀河使者發表於2009-01-19

本文為原創,如需轉載,請註明作者和出處,謝謝!

   
Struts Logic
標籤庫包含了如下三類標籤:
    1. 
迴圈標籤:iterate標籤。用於列舉陣列、集合型別物件中的元素。

2. 條件處理標籤:用於是否相等、比較大小等判斷。這類標籤有emptyequal greaterEqualgreaterThanlessEquallessThanmatchmessagesNotPresentmessagesPresentnotEmptynotEqualnotMatchnotPresentpresent

3. 流控制標籤:用於轉向其他的頁面。redirectforward屬性這類標籤。
   

一、迴圈標籤(iterate)

    標籤用於對陣列以及集合型別物件中的元素進行列舉。標籤在功能上和JSTL中的標籤非常相似。標籤的常用屬性的意義和作用如下:

1. id:一個表示集合中的每一個元素的變數,被儲存在page範圍中。

2. name:一個陣列或集合物件名,或是一個包含有getter方法的JavaBean

3. property:如果name是一個JavaBean,那麼property就是這個JavaBean的屬性名。標籤通過這個屬性名獲得要列舉的陣列或集合物件。

4. indexId:迴圈過程中的索引(從0開始),相當於Java中在for迴圈中使用變數i來獲得迴圈中每一項的索引。

5. offset:偏移量。也就是從陣列或集合的第幾個元素開始列舉。

6. length:從offset開始,要列舉的元數的個數。

7. scopename變數儲存的範圍。如果不指定,標籤將搜尋所有的範圍。也就是說,依次按著pagerequestsessionapplication進行搜尋,如果在不同的範圍有同樣的變數名,以先搜尋到的為準。   

下面的例子演示了標籤的使用。在目錄中建立一個iterate.jsp檔案,程式碼如下:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt  @ page  import="java.util.*" pageEncoding="GBK"%>
  
@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
  
@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
  
<html>
<head>
<title>測試iterate標籤title>
head>
<body>
  

      
String array[] = { "bill""王明""趙陽" };
      pageContext.setAttribute(
"array"array);
  
      List
<String> list = new LinkedList<String>();
      list.add(
"計算機");
      list.add(
"英語");
      pageContext.setAttribute(
"list", list);
      pageContext.setAttribute(
"iterator", list.iterator());
  
      Map
<StringString> map = new HashMap<StringString>();
      map.put(
"book""");
      map.put(
"apple""蘋果");
      pageContext.setAttribute(
"keySet", map.keySet());
      pageContext.setAttribute(
"entrySet", map.entrySet());
  
%>
        
      
<logic:iterate id="s" name="array" indexId="i" offset="1" length="1">
        array[
<bean:write name="i"/>] = <bean:write name="s"/> 
      
logic:iterate>    
      
<br>
      
<jsp:useBean id="form" class="actionform.HtmlTagsForm"/>
      
<jsp:setProperty name="form" property="hobbies" value="計算機","旅遊","攝影"} %>"/>
      
<logic:iterate id="s" name="form" property="hobbies">
        
<bean:write name="s"/> 
      
logic:iterate>    
      
<br>
      
<logic:iterate id="s" name="list" indexId="i">
        list[
<bean:write name="i"/>] = <bean:write name="s"/> 
      
logic:iterate>
      
<br>
      
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
        list[
<bean:write name="i"/>] = <bean:write name="s"/> 
      
logic:iterate>
      
<br>
      
<logic:iterate id="entry" name="entrySet">
        
<bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/> 
      
logic:iterate>
    
body>
  
html>

IE中輸入如下的URL測試iterate.jsp 

http://localhost:8080/samples/iterate.jsp

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

二、條件處理標籤

條件處理標籤可分為如下三類:
1. Test
presentnotPresentemptynotEmpty messagesPresentmessagesNotPresent

2. 比較:equal, lessThan, lessEqual, greaterThangreaterEqual

3. 字串匹配: matchnotMatch

   
所有的條件處理標籤都有nameproperty屬性。分別用來指定物件名和屬性名。如下面的程式碼演示了標籤的使用:

 

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt  <logic:empty name="var">
      var為空
  logic:empty>
  <logic:lessThan name="employee" property="age" value="18">
      不符合工作年齡
  logic:lessThan>   

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 三、流控制標籤(redirectforward

    用於重定向到其他的Web資源。用法如下:

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt  <logic:redirect href="http://www.sina.com.cn"/>

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 標籤用於把當前的請求轉發給其他的靜態資源、JSP頁或Servlet。在功能和使用上和類似。   

    關於Logic標籤庫的更詳細的資訊請讀者參閱Struts的官方網站,URL如下:

http://struts.apache.org/1.2.9/userGuide/struts-logic.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12921506/viewspace-541473/,如需轉載,請註明出處,否則將追究法律責任。

相關文章