Struts迭代器(Iterator)遍历常见List的总结

之前写在GitHub Pages上,发表于2017-01-18
前言 由于常用Struts迭代器(Iterator)遍历List,而时间久了难免会忘,这里总结一下以备后观。为便于理解将给出后端Java、前端JSP(Struts标签)的实际代码。
遍历类型

  • List
  • List
  • Entity
  • List
代码演示 遍历List
Java部分
if(list== null) { list= new ArrayList(); list.add("宋远桥"); list.add("俞莲舟"); list.add("俞岱岩"); list.add("张松溪"); list.add("张翠山"); list.add("殷梨亭"); list.add("莫声谷"); }

JSP(Struts标签)部分
武当七侠

效果图 暂略
遍历List
Java部分
List listList= null; List list= null; if(listList== null) { listList= new ArrayList(); list= new ArrayList(); list.add("姓名"); list.add("别名"); list.add("武学"); list.add("成就"); listList.add(list); list= new ArrayList(); list.add("宋远桥"); list.add("宋大侠"); list.add("绵掌"); list.add("首位被前任罢免的掌门弟子"); listList.add(list); list= new ArrayList(); list.add("俞莲舟"); list.add("俞二侠"); list.add("虎爪绝户手"); list.add("七侠武功之最;武当派第二代掌门;太极拳传人"); listList.add(list); list= new ArrayList(); list.add("俞岱岩"); list.add("俞三侠"); list.add("玄虚刀法"); list.add("短期持有屠龙刀"); listList.add(list); list= new ArrayList(); list.add("张松溪"); list.add("无"); list.add("内家拳"); list.add("内家拳传人"); listList.add(list); list= new ArrayList(); list.add("张翠山"); list.add("铁画银钩;张五侠"); list.add("二十四字倚天屠龙功"); list.add("武当七侠阵亡第一人"); listList.add(list); list= new ArrayList(); list.add("殷梨亭"); list.add("殷六侠"); list.add("天地同寿剑法"); list.add("剑术为七侠最精"); listList.add(list); list= new ArrayList(); list.add("莫声谷"); list.add("无"); list.add("绕指柔剑"); list.add("死于叛徒师侄宋青书"); listList.add(list); }

JSP(Struts标签)部分
武当七侠简介

效果图 暂略
遍历Entity
Java部分
DaXia daxia= null; if(daxia== null) { daxia= new DaXia("张无忌", 21, "乾坤大挪移", "明教第34任教主"); }

JSP(Struts标签)部分
张无忌简介

效果图 暂略
遍历List
Java部分
List list= null; DaXia daxia= null; if(list== null) { list= new ArrayList(); daxia= new DaXia("令狐冲", 31, "独孤九剑", "仗剑天涯肆意人生"); list.add(daxia); daxia= new DaXia("张无忌", 21, "乾坤大挪移", "明教第34任教主"); list.add(daxia); daxia= new DaXia("萧峰", 45, "降龙十八掌", "侠之大者为国为民"); list.add(daxia); daxia= new DaXia("扫地僧", 99, "易筋经", "宠辱不惊武至化境深明医理重剑无锋"); list.add(daxia); }

JSP(Struts标签)部分
数名大侠简介
姓名 年龄 绝学 成就

效果图 暂略
比较 比较List和Entity 1.迭代器语法规则不同
遍历List所需迭代器为
遍历Entity不需迭代器
2.获取元素语法规则不同
遍历List获取元素方式为
遍历Entity获取元素方式为
比较List和List 1.迭代器语法规则不同
遍历List由于List没有属性,取内层值需要借助迭代器的属性status以依次取内层值
遍历List直接像静态变量一样对象打点访问(属性)即可
2.遍历层数不同
遍历List需要双层两个Iterator遍历
遍历List外层使用遍历器,内层打点访问即可
总结 【Struts迭代器(Iterator)遍历常见List的总结】遍历方式各有长短,若非多表连接查询、所需显示表格的列数已经固定,一般用实体类(Entity)迭代。相反,所需显示表格的行数不确定或行列数均不确定时,再用实体类迭代将很无法实现,只能用ListList迭代。

    推荐阅读