在JSP中用自定义标签实现集合的遍历—山寨版cforeach.docVIP

在JSP中用自定义标签实现集合的遍历—山寨版cforeach.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在JSP中用自定义标签实现集合的遍历—山寨版cforeach

【文章标题】在JSP中用自定义标签实现集合的遍历——山寨版 c:foreach 【文章作者】曾健生 【作者邮箱】zengjiansheng1@126.com 【作者QQ】1座机电话号码 ******************************************************************************* 在JSTL中,标签 c:foreach /c:foreach 可方便地遍历集合或数组,在了解了自定义标签后,可动手实现 c:foreach 标签的功能。 在编写自定义标签前,总要把实验环境搭建好^-^ 首先,定义一个Person类,在实验的集合中就是存放这个类的实例,代码如下: package com.javaeye.newjueqi; /** * 实验类Person */ public class Person private String name; private int age; public String getName return name; public void setName String name name; public int getAge return age; public void setAge int age this.age age; 既然是遍历集合,那么集合也是必须的,我们在测试页面TestMyELTag.jsp上写下如下的JSP代码,生成一个测试用途的集合ArrayList,集合中有三个元素 % //第1个人对象 Person p1 new Person ; p1.setName Tom ; p1.setAge 23 ; //第2个人对象 Person p2 new Person ; p2.setName Mike ; p2.setAge 33 ; //第3个人对象 Person p3 new Person ; p3.setName Jack ; p3.setAge 43 ; ArrayList list new ArrayList ; list.add p1 ; list.add p2 ; list.add p3 ; //把ArrayList存储在application pageContext.setAttribute PersonList, list ; % c:foreach 前,有必要先了解一下正版的 c:foreach 的标准用法是怎么样的。如果用 c:foreach 遍历上述的集合写法如下: c:forEach items $ pageScope.personlist var per $ -- $ per.age /c:forEach c:foreach 是循环控制,可以将集合中的成员循序遍历一遍,运行方式为条件符合时,将会重复执行 c:foreach 的本体内容。 c:foreach 中的属性的含义:items是被迭代的集合对象,var是用来存放现在指向的成员,上面的代码运行后的结果如图1所示: 图1 我们实现一个自定义的标签 newjueqi: myforEach ,模拟实现 c:forEach 的功能,用法如下: !-- 使用自定义标签模拟实现 c:forEach 中集合的遍历功能 -- newjueqi:myforEach items $ pageScope.personlist var per $ -- $ per.age /newjueqi:myforEach /** * 完成模拟 c:forEach 标签遍历集合的功能 */ public void doTag throws JspException, IOException // 定义一个迭代器 Iterator i null; //如果集合是Colleciton类型 if items instanceof Collection //获取Collection的迭代器 i Collection items .iterator ; //如果集合是数组类型 else if items instanceof Object[] //用Arrays的静态方法asList把数组转换为一个List集合,由于asList接受的参数 //是可变参数,所以为了防止转换出错必须要把传入 的参数强制为数组 i Arrays.asList Object[] items .iterator ; else throw new RuntimeException 不能转换 ; //进行迭代 while

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档