logic:iterate(转)

简介:

logic:iterate

struts标签<logic:iterate>的用法

<logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 
1、 java对象的数组 

2、 ArrayList、Vector、HashMap等

 

<logic:iterate>标记用于在页面中创建一个循环,以此来遍历如数组、Collection、Map这样的对象。该标记的功能强大,在Struts应用的页面中经常使用到。
1、对数组进行循环遍历
使用<logic:iterate>标记可以用于遍历数组,以下是一段示例代码:

<%
String[] testArray={"str1","str2","str3"}; 
pageContext.setAttribute("test",testArray);  
%>
<logic:iterate id="show" name="test"> 
<bean:write name="show"/> 
</logic:iterate>

在上面的代码中,首先定义了一个字符串数组,并为其初始化。接着,将该数组存入pageContext对象中,命名为test1。然后使用<logic:iterate>标记的name属性指定了该数组,并使用id来引用它,同时使用<bean:write>标记来将其显示出来。其结果为:
str1 
str2 
str3 

另外,还可以通过length属性来指定输出元素的个数。如下面的代码:
<logic:iterate id="show" name="test" length="2" offset="1"> 
<bean:write name="show"/> 
</logic:iterate>

其中length属性指定了输出元素的个数,offset属性指定了从第几个元素开始输出,如此处为1,则表示从第二个元素开始输出。所以该代码的运行结果应当输出:
str2
str3

另外,该标记还有一个indexId属性,它指定一个变量存放当前集合中正被访问的元素的序号,如:

< logic:iterate id="show" name="test" length="2" offset="1" indexId="number">  
<bean:write name="number"/>:<bean:write name="show"/> 
</logic:iterate>

其显示结果为:
1:str2 
2:str3 
2、对HashMap进行循环遍历

<%
HashMap countries=new HashMap();
countries.put("country1","中国");
countries.put("country2","美国");
countries.put("country3","英国");
countries.put("country4","法国");
countries.put("country5","德国");
pageContext.setAttribute("countries",countries); 
%>
< logic:iterate  id="country" name="countries"> 
<bean:write name="country" property="key"/>:
<bean:write name="country" property="value"/> 
</logic:iterate>


在bean:write中通过property的key和value分别获得HaspMap对象的键和值。其显示结果为:
country5:德国 
country3:英国 
country2:美国 
country4:法国 
country1:中国 
由结果可看出,它并未按添加的顺序将其显示出来。这是因为HaspMap是无序存放的。

3、嵌套遍历

<%
String[] colors={"red","green","blue"};
String[] countries1={"中国","美国","法国"};
String[] persons={"乔丹","布什","克林顿"};
ArrayList list2=new ArrayList();
list2.add(colors);
list2.add(countries1);
list2.add(persons);
pageContext.setAttribute("list2",list2);
%>
< logic:iterate id="first" name="list2" indexId="numberfirst">
<bean:write name="numberfirst"/>
< logic:iterate  id="second" name="first">
<bean:write name="second"/>
</logic:iterate>
<br>
</logic:iterate>


运行效果:
0 red green blue 
1 中国 美国 法国 
2 乔丹 布什 克林顿
<logic:iterate id="it" name="list" length="2"> 
<bean write name="it"/><br/> 
</logic:iterate> 

list 是你要遍例的对象 it是list里面的元素的类型 ,还有个offset属性,是用来表示起始位置的,比如,offset=“1”从第二位开始遍历出值,offset=“0”是默认值

 

本文转载自SharkBin博客园博客,原文链接:http://www.cnblogs.com/SharkBin/p/6399477.html如需转载自行联系原作者

相关文章
|
6月前
解决Mapped Statements collection already contains value for experiment4.UserMapper.listUser错误~
解决Mapped Statements collection already contains value for experiment4.UserMapper.listUser错误~
|
11月前
|
PyTorch 算法框架/工具 Python
RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future rel
RuntimeError: Integer division of tensors using div or / is no longer supported, and in a future rel
91 0
Multiple Origin composition test - Opportunity Creation case
Sent: Wednesday, 3 December, 2014 2:48 PM 结论是:如果gateway系统上针对一个odata service维护了多个mark成default的backend system,在creation的case下,runtime时候gateway只会向第一个 Default system发起请求。
109 0
Multiple Origin composition test - Opportunity Creation case
2015-03-17 current note creation logic in my task
2015-03-17 current note creation logic in my task
87 0
2015-03-17 current note creation logic in my task
How to find implementation of Requirement defined in Pricing Procedure
How to find implementation of Requirement defined in Pricing Procedure
How to find implementation of Requirement defined in Pricing Procedure
repeated call of attachBrowserEvent
Created by Jerry Wang, last modified on Jun 19, 2015
repeated call of attachBrowserEvent
tcode SLG1 Object determination logic
tcode SLG1 Object determination logic
189 0
tcode SLG1 Object determination logic
When should reread of cl_crm_bol_entity and $scope.$apply be called manually
When should reread of cl_crm_bol_entity and $scope.$apply be called manually
119 0
When should reread of cl_crm_bol_entity and $scope.$apply be called manually
My task - how is inline creation implemented
Created by Wang, Jerry, last modified on Mar 07, 2016
My task - how is inline creation implemented