隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
          數據加載中……

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

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

          Struts 2系列教程》


          上一篇:
          Struts1.x系列教程(6):Bean標簽庫

             
          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 

          http://localhost:8080/samples/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

          下一篇:
          Struts1.x系列教程(8):上傳單個文件





          Android開發完全講義(第2版)(本書版權已輸出到臺灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2009-01-19 22:21 銀河使者 閱讀(4736) 評論(0)  編輯  收藏 所屬分類: javaweb 原創struts1.x

          主站蜘蛛池模板: 吉林省| 龙游县| 牟定县| 合川市| 浮梁县| 榆林市| 门头沟区| 股票| 原阳县| 青海省| 泗阳县| 宣城市| 马尔康县| 屯门区| 清河县| 漯河市| 全州县| 增城市| 蓬莱市| 铜山县| 科尔| 合作市| 疏附县| 丰原市| 海淀区| 化德县| 北宁市| 子洲县| 如东县| 霍城县| 翁源县| 铜川市| 凉城县| 仙桃市| 扎赉特旗| 玉山县| 墨竹工卡县| 甘洛县| 麻栗坡县| 健康| 长春市|