jsp页面循环集合操作整理

jsp页面循环集合操作整理

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⽤来匹配相应类的属 性⽤法详解22007-04-04 20:34标记⽤于在页⾯中创建⼀个循环,以此来遍历如数组、Collection、Map这样的对象。该标 记的功能强⼤,在Struts应⽤的页⾯中经常使⽤到。

1、对数组进⾏循环遍历

使⽤标记可以⽤于遍历数组,以下是⼀段⽰例代码:

程序代码

复制代码 代码如下:<%

String[] testArray={"str1","str2","str3"};

ribute("test",testArray);

%>

在上⾯的代码中,⾸先定义了⼀个字符串数组,并为其初始化。接着,将该数组存⼊pageContext对象中,命名为test1。然后使 ⽤标记的name属性指定了该数组,并使⽤id来引⽤它,同时使⽤标记 来将其显⽰出来。其结果为:

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

复制代码 代码如下:

A

打印结果为: 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 class Attr{String attrName;String getAttrName(){return "123";}}

复制代码 代码如下:

当然value 还可以写成 value="%{label}" label可以有.操作

label的属性List 可以写成value="%{}" 相当于:getLabel().getList();

5:遍历2个list;

复制代码 代码如下:List attrN {color,size,style}

List attrV {red,20,gay}

这2个list的元素是⼀⼀对应的,⼀个attrN对应⼀个attrV

index is :

attrName is : or

attrName is :

第三种:serlvet⽤标签循环遍历,注:items是结果集。引⽤标签库<%@ taglib prefix="c" uri="/WEB-INF/" %>

标签的作⽤就是迭代输出标签内部的内容。它既可以进⾏固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数。

标签的语法定义如下所⽰。

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:迭代的步长。

标签的items属性⽀持Java平台所提供的所有标准集合类型。此外,您可以使⽤该操作来迭代数组(包括基本类型数组)中的元素。它所⽀持的集合类型以及迭代的元素如下所⽰:

l tion:调⽤iterator()来获得的元素。

l :通过所获得的实例。

l or:迭代器元素。

l ation:枚举元素。

l Object实例数组:数组元素。

l 基本类型值数组:经过包装的数组元素。

l ⽤逗号定界的String:分割后的⼦字符串。

l :SQL查询所获得的⾏。

不论是对整数还是对集合进⾏迭代,的varStatus属性所起的作⽤相同。和var属性⼀样,varStatus⽤于创建限定了作⽤域的变量(改变量只在当前标签体内起作⽤)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,⽽是赋予gStatus类的实例。该类包含了⼀系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所⽰:

l current:当前这次迭代的(集合中的)项。

l index:当前这次迭代从0开始的迭代索引。

l count:当前这次迭代从1开始的迭代计数。

l first:⽤来表明当前这轮迭代是否为第⼀次迭代,该属性为boolean类型。

l last:⽤来表明当前这轮迭代是否为最后⼀次迭代,该属性为boolean类型。

l begin:begin属性的值。

l end:end属性的值

l step:step属性的值

⽤法

转的,可以⽤来作为⾃⼰的学习笔记

类似于for和foreach循环 以下是我⽬前见过的⽤法:

1、循环遍历,输出所有的元素。

${li}

注意:items ⽤于接收集合对象,var 定义对象接收从集合⾥遍历出的每⼀个元素。同时其会⾃动转型。

2、循环遍历,输出⼀个范围类的元素。

${li}

注意:begin 定义遍历的开始位置,end定义遍历的结束位置。begin 和end的引号必须写。

3、循环遍历,输出除某个元素以外的元素或输出指定元素。

${li}

注意:varStatus 表⽰当前集合的状态(其实是不是,我也不太清楚,只知道这样⽤,会的⼈指点下),count为循环⼀个计算器。 4、循环遍历,输出第⼀个或最后⼀个元素。

我是第⼀个元素

我是最后⼀个元素

注意:first表⽰如果是⼀个元素,则返回ture,反之则返回false

last 表⽰如果是最后⼀个元素,则返回ture,反之则返回false。

5、循环遍历,按指定步长输出。

${li}

注意:step为循环的步长。每次隔两个单位输出⼀个。如:1、3、5、==

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690578360a372388.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信