在逻辑标记库中定义了<logic:iterate>标记,它能够根据特定集合中元素的数目对标记体的内容进行重复的检查。集合的类型可以是java.util.Iterator,java.util.Collection
,java.util.Map或是一个数组。有三种方法可以定义这个集合:
l 使用运行时间表达式来返回一个属性集合的集合
l 将集合定义为bean,并且使用name属性指定存储属性的名称。
l 使用name属性定义一个bean,并且使用property属性定义一个返回集合的bean属性。
当前元素的集合会被定义为一个页作用域的bean。属性如下,所有这些属性都能使用运行时表达式。
属性
描述
collection
如果没有设置name属性,它就指定了要进行重复的集合
Id
页作用域bean和脚本变量的名称,它保存着集合中当前元素的句柄
indexed
页作用域JSP bean的名称,它包含着每次重复完成后集合的当前索引
Length
重复的最大次数
Name
作为集合的bean的名称,或是一个bean名称,它由property属性定义的属性,是个集合
Offset
重复开始位置的索引
property
作为集合的Bean属性的名称
Scope
如果指定了bean名称,这个属性设置bean的作用域。若没有设置,搜索范围从页到应用程序作用域
Type
为当前定义的页作用域bean的类型
例如:
<logic:iterate id=”currentInt”
collection=”<% =myList %>”
type=”java.lang.Integer”
offset=”1”
length=”2”>
<% =currentint %>
</logic:iterate>
代码将从列表中的第一个元素开始重复两个元素并且能够让当前元素作为页作用域和java.lang.Integer类型的脚本变量来使用。也就是说,如果myList包含元素1,2,3,4等,代码将会打印1和2。