logic itertae標籤的使用

2021-08-29 17:01:45 字數 2592 閱讀 5527

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...