Struts1.x系列教程(7):Logic標籤庫

 Struts Logic標籤庫包含了如下三類標籤:
    1. 
循環標籤:iterate標籤。用於枚舉數組、集合類型對象中的元素。
2. 條件處理標籤:用於是否相等、比較大小等判斷。這類標籤有emptyequal greaterEqualgreaterThanlessEquallessThanmatchmessagesNotPresentmessagesPresentnotEmptynotEqualnotMatchnotPresentpresent
3. 流控制標籤:用於轉向其他的頁面。redirectforward屬性這類標籤。
   
一、循環標籤(iterate)

    <logic:iterate>標籤用於對數組以及集合類型對象中的元素進行枚舉。<logic:iterate>標籤在功能上和JSTL中的<c:forEach>標籤非常相似。<logic:iterate>標籤的常用屬性的意義和作用如下:
1. id:一個表示集合中的每一個元素的變量,被保存在page範圍中。
2. name:一個數組或集合對象名,或是一個包含有getter方法的JavaBean
3. property:如果name是一個JavaBean,那麼property就是這個JavaBean的屬性名。<logic:iterate>標籤通過這個屬性名獲得要枚舉的數組或集合對象。
4. indexId:循環過程中的索引(從0開始),相當於Java中在for循環中使用變量i來獲得循環中每一項的索引。
5. offset:偏移量。也就是從數組或集合的第幾個元素開始枚舉。
6. length:從offset開始,要枚舉的元數的個數。
7. scopename變量保存的範圍。如果不指定,<logic:iterate>標籤將搜索所有的範圍。也就是說,依次按着pagerequestsessionapplication進行搜索,如果在不同的範圍有同樣的變量名,以先搜索到的爲準。   
下面的例子演示了<logic:iterate>標籤的使用。在<samples工程目錄>目錄中建立一個iterate.jsp文件,代碼如下:

  <%@ 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"/>&nbsp;
      
</logic:iterate>    
      
<br>
      
<jsp:useBean id="form" class="actionform.HtmlTagsForm"/>
      
<jsp:setProperty name="form" property="hobbies" value="<%= new String[]{"計算機","旅遊","攝影"} %>"/>
      
<logic:iterate id="s" name="form" property="hobbies">
        
<bean:write name="s"/>&nbsp;
      
</logic:iterate>    
      
<br>
      
<logic:iterate id="s" name="list" indexId="i">
        list[
<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;
      
</logic:iterate>
      
<br>
      
<logic:iterate id="s" name="iterator" indexId="i" offset="1">
        list[
<bean:write name="i"/>] = <bean:write name="s"/>&nbsp;
      
</logic:iterate>
      
<br>
      
<logic:iterate id="entry" name="entrySet">
        
<bean:write name="entry" property="key"/> = <bean:write name="entry" property="value"/>&nbsp;
      
</logic:iterate>
    
</body>
  
</html>
IE中輸入如下的URL測試iterate.jsp 
二、條件處理標籤
條件處理標籤可分爲如下三類:
1. Test
presentnotPresentemptynotEmpty messagesPresentmessagesNotPresent
2. 比較:equal, lessThan, lessEqual, greaterThangreaterEqual
3. 字符串匹配: matchnotMatch

   
所有的條件處理標籤都有nameproperty屬性。分別用來指定對象名和屬性名。如下面的代碼演示了<logic:empty><logic:lessThan>標籤的使用:
 
  <logic:empty name="var">
      var爲空
  </logic:empty>
  <logic:lessThan name="employee" property="age" value="18">
      不符合工作年齡
  </logic:lessThan>   
三、流控制標籤(redirectforward

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

  <logic:redirect href="http://www.sina.com.cn"/>
<logic:forward>標籤用於把當前的請求轉發給其他的靜態資源、JSP頁或Servlet。在功能和使用上和<jsp:forward>類似。   

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

http://struts.apache.org/1.2.9/userGuide/struts-logic.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章