首页 / 软件开发 / JAVA / 浅谈Struts标签logic:iterate
浅谈Struts标签logic:iterate2011-10-02< logic:iterate >是Logic Struts标签库中最复杂的标签,也是用途最广的一个标签,它能够 在一个循环中遍历数组、Collection、Enumeration、Iterator 或 Map 中的所有元素。1. 遍历集合的 name 属性指定需要进行遍历的集合对象, 它每次从集合中检索出一个元素, 然后把它放在page 范 围内, 并以id 属性指定的字符串来命名这个元素, 例如: < % Vector animals = new Vector();
animals.addElement("Dog");
animals.addElement("Cat");
animals.addElement("Bird");
animals.addElement("Chick");
request.setAttribute("Animals", animals);
%>以上代码先定义了一个Vector 类型的集合变量 Animals, 它存放在request 范围内. 接下来 标签在 一个循环中遍历Animals 集合(这个集合名就是在标签中的name 属性的值)中所有元素, 每次检索到一个 元素, 就把它命名为"element"(标签id 属性的值), 并存放在page 范围内.在 中, 还嵌套了一个< ?xml:namespace prefix = bean / >< bean:write> 标签, 它用 于输出每个元素的内容. 以上代码的输出内容如下:DogCatBirdChicklength 属性指定需要遍历的元素的数目, 如果没有设置length 属性, 就遍历集合中的所有元素.offset 属性指定开始遍历的起始位置, 默认值为 "0" , 表示从集合的第一个元素开始遍历.indexId 属性定义一个代表当前遍历元素序号的变量, 这个变量被存放在 page 范围内, 可以被标签 主体的标签访问.例如:id="element" // 指定输出元素的名 与 中name 属性一致
indexId="index" // 遍历元素序号的变量, 这个变量放在page 范围内
name="Animals" // request 中的集合名, 从中取循环取出元素
offset="1" // 从集合的第 2 条记录开始取数
length="2"> // 取出 2 个元素
. // 序号
< bean:write name="element" property="key">: // 键名
< bean:write name="element" property="value"> // 键值