logic:iterate
logic:iterate標記用於在頁面中建立乙個迴圈,以此來遍歷如陣列,collection,map這樣的物件。該標記的功能強大,在 struts應用的頁面中經常使用到。
對陣列進行迴圈遍歷
使用logic:iterate標記可以用於遍歷陣列。以下是一段示例**:
<%
string testarray1 = ;
pagecontext.setattribute("test1",testarray1);
%>
在上面的**中,首先定義了乙個字串陣列,並為其初始化。接著,將該陣列存入pagecontext物件中,命名為test1。然後使用 logic:iterate標記的name屬性指定了該陣列,並使用id來引用它,同時使用標記來將其顯示出來。執行效果如下所示:
str0
str1
str2
str3
str4
str5
str6
分析一下上面的**,可知logic:iterate標記的name屬性用於指定某一存在的物件,id屬性定義乙個新的物件來引用name 屬性所指定的物件。再使用標記的name屬性來引用了id屬性所定義的新的物件,將陣列的值列印出來。另外,還可以通過length屬性來指定輸出元素的個數。如下面的**。
其中length屬性指定了輸出元素的個數,offset屬性指定了從第幾個元素開始輸出,如此處為2則表示從第三個元素開始輸出。所以該**的執行結果應當從str2一直輸出到str4。實際執行效果如下:
str2
str3
str4
另外,該標記還有乙個indexid屬性,它指定乙個變數存放當前集合中正被訪問的元素的序號,如下例:
:執行效果如下所示:
2: str2
3: str3
4: str4
可以看出,序號已經加在了輸出字串的前面。
對hashmap進行迴圈遍歷
以下是一段使用logic:iterate標記遍歷hashmap的**。
<%
hashmap countries = new hashmap();
countries.put("country1","中國");
countries.put("country2","美國");
countries.put("country3","英國");
countries.put("country4","法國");
countries.put("country5","德國");
pagecontext.setattribute("countries",countries);
%>:
上面的**首先定義了乙個hashmap的物件,並向其中新增了5個元素,再把它存入pagecontext物件中,命名為countries。令logic:iterate標記的name屬性等於"countries",id為country。再讓標記的name屬性和logic:iterate 標記的id屬性相對應,令property乙個為"key",乙個為"value"。便會有以下輸出結果:
country1: 中國
country4: 法國
country5: 德國
country2: 美國
country3: 英國
從效果上看出,logic:iterate標記確定遍歷了hashmap的每乙個元素,但它並未按新增的順序將其顯示出來。這是因為hashmap 是無序存放的。
對list進行迴圈遍歷
logic:iterate標記也可以對list型的物件進行遍歷,以下是一段示例**。
<%
arraylist list1 = new arraylist();
list1.add("str1");
list1.add("str2");
list1.add("str3");
list1.add("str4");
list1.add("str5");
pagecontext.setattribute("testlist",list1);
%>
:執行效果如下:
0: str1
1: str2
2: str3
3: str4
4: str5
巢狀遍歷
logic:iterate標記還可以進行巢狀遍歷,以下是一段**示例:
<%
string colors = ;
string countries1 = ;
string persons = ;
arraylist list2 = new arraylist();
list2.add(colors);
list2.add(countries1);
list2.add(persons);
pagecontext.setattribute("list2",list2);
%>
:上面的**使用了雙重迴圈來遍歷乙個arraylist物件,這個arraylist物件內的每乙個元素又是乙個string型的陣列。以下是執行效果:
0: red green blue
1: 中國 美國 法國
2: 喬丹 布希 柯林頓
帶標籤體的標籤和父標籤的標籤
帶有標籤體的自定義標籤 1 若有乙個標籤體 c1 date sssss c1 date 在自定義標籤的標籤處理器中使用jspfragment物件封裝了標籤體的資訊 若配置了標籤含有標籤體,則jsp會呼叫setjspbody 方法把jspfragment傳遞給標籤處理類。在 tagsupport中還定...
Struts2的標籤 邏輯標籤 IF標籤
struts2的標籤庫中,有乙個出場頻度很高的邏輯標籤 if標籤 其實很簡單,就兩個引數,常用的就乙個 test 但是,要寫乙個合法test表示式,卻是讓我覺得很麻煩的事.經常寫錯 test裡面寫的表示式經常要結合ognl使用的,例如 max s file here scott s file her...
struts s標籤中的s select標籤用法
一 常用結構 這裡列舉幾個常用的屬性吧 1 id 可能要做某些取值操作 2 name 用來作為action中取值的屬性 3 value 用來預設input元素的value屬性 4 list 在後台或者自定義的乙個取值集合 這個是個必填項 5 listkey 標籤的key值,也就是我們後台要獲取到的k...