2023年7月29日发(作者:)
jsp页⾯循环集合操作整理第⼀种:struts1.2循环遍历元素,name是结果集。引⽤标签库<%@ taglib uri="/tags-logic"prefix="logic" %>
1、 java对象的数组
2、 ArrayList、Vector、HashMap等
例:
复制代码 代码如下:
name:
password:
iterate标记
id 脚本变量的名称,它保存着集合中当前元素的句柄。
name 代表了你需要叠代的集合,来⾃session或者request的属性。
type 是其中的集合类元素的类型
bean 的write标记是⽤来将属性输出的,name⽤来匹配iterate的id,property⽤来匹配相应类的属 性
1、对数组进⾏循环遍历
使⽤
程序代码
复制代码 代码如下:<%
String[] testArray={"str1","str2","str3"};
ribute("test",testArray);
%>
在上⾯的代码中,⾸先定义了⼀个字符串数组,并为其初始化。接着,将该数组存⼊pageContext对象中,命名为test1。然后使 ⽤
str1
str2
str3
另外,还可以通过length属性来指定输出元素的个数。如下⾯的代码:
程序代码
其中length属性指定了输出元素的个数,offset属性指定了从第⼏个元素开始输出,如此处为1,则表⽰从第⼆个元素开始输出。所以该代码的运⾏结果应当输出:
str2
str3
另外,该标记还有⼀个indexId属性,它指定⼀个变量存放当前集合中正被访问的元素的序号,如:
程序代码
复制代码 代码如下:
其显⽰结果为:
1:str2
2:str3
2、对HashMap进⾏循环遍历
程序代码
复制代码 代码如下:<%
HashMap countries=new HashMap();
("country1","中国");
("country2","美国");
("country3","英国");
("country4","法国");
("country5","德国");
ribute("countries",countries);
%>
在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();
(colors);
(countries1);
(persons);
ribute("list2",list2);
%>
运⾏效果:
0 red green blue
1 中国 美国 法国
2 乔丹 布什 克林顿 [/size][/size][/color][/color]
第⼆种:struts2.0循环遍历元素,注:value是结果集。引⽤标签库<%@ taglib uri="/struts-tags" prefix="s" %>
s:iterator 标签有3个属性:
value:被迭代的集合
id :指定集合⾥⾯的元素的id status 迭代元素的索引
1:jsp页⾯定义元素写法 数组或list
复制代码 代码如下:
打印结果为: 1A2A3A4A5A
2:索引的⽤法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下⼏个⽅法
int getCount()返回当前迭代了⼏个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第⼀个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数
复制代码 代码如下:
现在的索引是奇数为:
当前元素值:
3:遍历map
value可以直接定义为:
value也可以是数据栈⾥⾯的对象
复制代码 代码如下:遍历写法如下:
key :
value:
当然key 和value 都可以使java 的 Object
4:遍历数据栈.简单的List类,
List
复制代码 代码如下:
当然value 还可以写成 value="%{label}" label可以有.操作
label的属性List 可以写成value="%{}" 相当于:getLabel().getList();
5:遍历2个list;
复制代码 代码如下:List
List
这2个list的元素是⼀⼀对应的,⼀个attrN对应⼀个attrV
index is :
attrName is :
attrName is :
第三种:serlvet⽤
begin="expression" end="expression" step="expression"> body content
l var:迭代参数的名称。在迭代体中可以使⽤的变量的名称,⽤来表⽰每⼀个迭代变量。类型为String。
l items:要进⾏迭代的集合。对于它所⽀持的类型将在下⾯进⾏讲解。
l varStatus:迭代变量的名称,⽤来表⽰迭代的状态,可以访问到迭代⾃⾝的信息。
l begin:如果指定了items,那么迭代就从items[begin]开始进⾏迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
l end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
l step:迭代的步长。
l tion:调⽤iterator()来获得的元素。
l :通过所获得的实例。
l or:迭代器元素。
l ation:枚举元素。
l Object实例数组:数组元素。
l 基本类型值数组:经过包装的数组元素。
l ⽤逗号定界的String:分割后的⼦字符串。
l :SQL查询所获得的⾏。
不论是对整数还是对集合进⾏迭代,
l current:当前这次迭代的(集合中的)项。
l index:当前这次迭代从0开始的迭代索引。
l count:当前这次迭代从1开始的迭代计数。
l first:⽤来表明当前这轮迭代是否为第⼀次迭代,该属性为boolean类型。
l last:⽤来表明当前这轮迭代是否为最后⼀次迭代,该属性为boolean类型。
l begin:begin属性的值。
l end:end属性的值
l step:step属性的值
转的,可以⽤来作为⾃⼰的学习笔记
1、循环遍历,输出所有的元素。
${li}
注意:items ⽤于接收集合对象,var 定义对象接收从集合⾥遍历出的每⼀个元素。同时其会⾃动转型。
2、循环遍历,输出⼀个范围类的元素。
${li}
注意:begin 定义遍历的开始位置,end定义遍历的结束位置。begin 和end的引号必须写。
3、循环遍历,输出除某个元素以外的元素或输出指定元素。
${li}
c:foreach>
注意:varStatus 表⽰当前集合的状态(其实是不是,我也不太清楚,只知道这样⽤,会的⼈指点下),count为循环⼀个计算器。 4、循环遍历,输出第⼀个或最后⼀个元素。
注意:first表⽰如果是⼀个元素,则返回ture,反之则返回false
last 表⽰如果是最后⼀个元素,则返回ture,反之则返回false。
5、循环遍历,按指定步长输出。
${li}
注意:step为循环的步长。每次隔两个单位输出⼀个。如:1、3、5、==
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690578360a372388.html
评论列表(0条)