<s:iterator>用法及属性说明

Struts系列教材 (十二)- 标签 - 使用s:iterator 标签遍历集合 2. 为ProductAction增加一个list()方法,为products添加3个product对象,并返回“list"把你自己做的项目文件夹,和我的可运行项目文件夹进行比较。在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。类似的,struts也提供了一个s:iterator用于遍历一个集合中的数据。这个软件很牛逼的,可以知道文件夹里哪两个文件不对,并且很明显地标记出来。表示遍历出来的元素状态。 阅读详情

s:iterator 标签有3个属性:

value:被迭代的集合,从后台返回的结果集,如value=“queryList”的queryList必须和后台返回的名称一致。

var:页面用于迭代使用的代替名称,如上将“queryList”替换为了“queryData”用于在<td>中迭代
id   :指定集合里面的元素的id
status 迭代元素的索引


struts2<S:iterator>遍历map小结

1.MapAction.java 

import java.util.ArrayList;   
import java.util.HashMap;   
import java.util.List;   
import java.util.Map;  

import com.opensymphony.xwork2.ActionSupport 
import com.model.Student 
public class MapAction extends ActionSupport   
{   
  
    private Map<String,String> map;   
    private Map<String,Student> studentMap;   
    private Map<String,String[]> arrayMap;   
    private Map<String,List<Student>> listMap;   
    
	public String testMap()   
   	{   
       map=new HashMap<String,String>();   
        map.put("1", "one");   
        map.put("2", "two");   
           
        studentMap=new HashMap<String,Student>();   
        studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25));   
        studentMap.put("student2",new Student(new Long(2),"20034140202","张三2","女",26));   
        studentMap.put("student3",new Student(new Long(3),"20034140202","张三3","男",27));   
        arrayMap=new HashMap<String,String[]>();   
        arrayMap.put("arr1", new String[]{"1","2003401","leejie","male","20"});   
        arrayMap.put("arr2", new String[]{"2","2003402","huanglie","male","25"});   
        arrayMap.put("arr3", new String[]{"3","2003403","lixiaoning","male","21"});   
           
       	listMap=new HashMap<String,List<Student>>();   
           
        List<Student> list1=new ArrayList<Student>();   
       	list1.add(new Student(new Long(1),"20034140201","张三1","男",25));   
        list1.add(new Student(new Long(2),"20034140202","张三2","男",25));   
        list1.add(new Student(new Long(3),"20034140203","张三3","男",25));   
        listMap.put("class1", list1);   
           
        List<Student> list2=new ArrayList<Student>();   
        list2.add(new Student(new Long(1),"20034140301","李四1","男",20));   
        list2.add(new Student(new Long(2),"20034140302","李四2","男",21));   
        list2.add(new Student(new Long(3),"20034140303","李四3","男",22));   
        list2.add(new Student(new Long(4),"20034140304","李四4","男",23));   
        listMap.put("class2", list2);   
        return SUCCESS;      
    }   
       
    public Map<String, String> getMap() {   
       return map;   
    }   
  	public void setMap(Map<String, String> map) {   
        this.map = map;   
    }   
   	public Map<String, Student> getStudentMap() {   
        return studentMap;   
    }   
	 public void setStudentMap(Map<String, Student> studentMap) {   
        this.studentMap = studentMap;   
    }   
	public Map<String, String[]> getArrayMap() {   
       return arrayMap;   
   	}   
  	public void setArrayMap(Map<String, String[]> arrayMap) {   
        this.arrayMap = arrayMap;   
    }   
  	public Map<String, List<Student>> getListMap() {   
        return listMap;   
    }   
  	public void setListMap(Map<String, List<Student>> listMap) {   
        this.listMap = listMap;   
    }    
}  

2.testMap.jsp 
<%@ page contentType="text/html;charset=UTF-8" %>   
<%@ taglib prefix="s" uri="/struts-tags" %>   
<html>   
<head>   
<title>struts2中的map遍历总结</title>   
</head>   
<body>   
   <b>1.map中的value为String字符串</b><br>   
   <s:iterator value="map" id="column">   
   <s:property value="#column"/><br>   
   key: <s:property value="key"/><br>   
   value:<s:property value="value"/><br>   
   ******************************************<br>   
  </s:iterator>   
    
  <b>2.map中的value为Student对象</b>   
  <table border="1" width="50%"  cellspacing="0" cellpadding="0">   
    <tr>   
      <td>key=value</td>   
      <td>ID</td>   
      <td>num</td>   
      <td>name</td>   
      <td>sex</td>   
      <td>age</td>   
    </tr>   
    <s:iterator value="studentMap" id="column">   
    <tr>   
     <td><s:property value="#column"/></td>   
     <td><s:property value="value.id"/></td>   
     <td><s:property value="value.num"/></td>   
     <td><s:property value="value.name"/></td>   
     <td><s:property value="value.sex"/></td>   
     <td><s:property value="value.age"/></td>   
    </tr>   
    </s:iterator>   
  </table>   
  <p>   
     
  <b>3.map中的value为String数组</b>   
  <table border="1" width="50%" cellspacing="0" cellpadding="0">   
    <tr>   
      <td>key=value</td>   
      <td>ID</td>   
      <td>num</td>   
      <td>name</td>   
     <td>sex</td>   
      <td>age</td>   
    </tr>   
    <s:iterator value="arrayMap" id="column">   
    <tr>   
     <td><s:property value="#column"/></td>   
     <td><s:property value="value[0]"/></td>   
     <td><s:property value="value[1]"/></td>   
     <td><s:property value="value[2]"/></td>   
     <td><s:property value="value[3]"/></td>   
     <td><s:property value="value[4]"/></td>   
    </tr>   
    </s:iterator>   
  </table>   
  <p>   
  <b>4.map中的value为list集合</b>   
  <table border="1" width="50%"  cellspacing="0" cellpadding="0">   
    <tr>   
      <td>class</td>   
      <td>ID</td>   
      <td>num</td>   
      <td>name</td>   
      <td>sex</td>   
      <td>age</td>   
    </tr>   
     
   <1.<s:iterator value="listHashMap" id="listid">   
   <s:iterator value="#listid.value" id="listidsub">   
       <tr>   
            <td><s:property value="key"/></td>   
            <td><s:property value="id"/></td>   
           <td><s:property value="num"/></td>   
            <td><s:property value="name"/></td>   
            <td><s:property value="sex"/></td>   
           <td><s:property value="age"/></td>   
        </tr>   
    </s:iterator>   
</s:iterator>  
</table> 
-------------------------------------------------------------------------------------------------------------------------------------------------
4、普通属性
public String execute(){
   username = "zhangsan";
   password = "123";
}
<s:property value="username"/><br>
   <s:property value="password"/><br>

5、自定义对象
public String execute(){
  userInfo = new UserInfo();
  userInfo.setUsername("hhh");
  userInfo.setPassword("111");
}
<s:property value="userInfo.username"/><br>
   <s:property value="userInfo.password"/><br>

6、List(普通属性)
  public String execute(){
  list = new ArrayList<String>();
  list.add("aaa");
  list.add("bbb");
  list.add("ccc");
}
<s:iterator value="list" var="var">
    <s:property value="var"/><br>
   </s:iterator>
   或者:
   <s:iterator value="list">
    <s:property/><br>
   </s:iterator>
  
6、List(自定义对象属性)
public String execute(){
  list = new ArrayList<UserInfo>();
  UserInfo userInfo = new UserInfo();
  userInfo.setUsername("u1");
  userInfo.setPassword("p1");
  userInfo.setRoleInfo(new RoleInfo("r1"));
  list.add(userInfo);
  userInfo = new UserInfo();
  userInfo.setUsername("u2");
  userInfo.setPassword("p2");
  userInfo.setRoleInfo(new RoleInfo("r2"));
  list.add(userInfo);
}
<s:iterator value="list" var="var">
    <s:property value="#var.username"/>
    <s:property value="#var.password"/>
    <s:property value="#var.roleInfo.rolename"/><br>
</s:iterator>
或者:
<s:iterator value="list">
    <s:property value="username"/>
    <s:property value="password"/>
    <s:property value="roleInfo.rolename"/><br>
</s:iterator>

7、数组(普通属性)
public String execute(){
  strs = new String[2];
  strs[0] = "as";
  strs[1] = "asd";
}
<s:iterator value="strs">
    <s:property/><br>
   </s:iterator>
或者:
<s:iterator value="strs" var="var">
    <s:property value="var"/><br>
   </s:iterator>
  
8、数组(自定义对象属性)
public String execute(){
  strs = new UserInfo[2];
  UserInfo userInfo = new UserInfo();
  userInfo.setUsername("u11");
  userInfo.setPassword("11");
  strs[0] = userInfo;
  userInfo = new UserInfo();
  userInfo.setUsername("u22");
  userInfo.setPassword("22");
  strs[1] = userInfo;
}
<s:iterator value="strs">
    <s:property value="username"/>
    <s:property value="password"/><br>
   </s:iterator>
或者:
<s:iterator value="strs" var="var">
    <s:property value="#var.username"/>
    <s:property value="#var.password"/><br>
</s:iterator>

8、数组(自定义对象属性)
public String execute(){
  strs = new UserInfo[2];
  UserInfo userInfo = new UserInfo();
  userInfo.setUsername("u11");
  userInfo.setPassword("11");
  userInfo.setRoleInfo(new RoleInfo("r11"));
  strs[0] = userInfo;
  userInfo = new UserInfo();
  userInfo.setUsername("u22");
  userInfo.setPassword("22");
  userInfo.setRoleInfo(new RoleInfo("r22"));
  strs[1] = userInfo;
}
<s:iterator value="strs" var="var">
    <s:property value="#var.username"/>
    <s:property value="#var.password"/>
    <s:property value="#var.roleInfo.rolename"/><br>
</s:iterator>
或者:
<s:iterator value="strs">
    <s:property value="username"/>
    <s:property value="password"/>
    <s:property value="roleInfo.rolename"/><br>
</s:iterator>

8、Map(普通属性)
public String execute(){
  map = new HashMap<String,String>();
  map.put("k1", "v1");
  map.put("k2", "v2");
}
<s:iterator value="map" var="var">
    <s:property value="#var.key"/>
    <s:property value="#var.value"/><br>
</s:iterator>
或者:
<s:iterator value="map">
    <s:property value="key"/>
    <s:property value="value"/><br>
</s:iterator>

8、Map(自定义对象属性)
public String execute(){
  map = new HashMap<String,UserInfo>();
  UserInfo userInfo = new UserInfo();
  userInfo.setUsername("u1");
  userInfo.setPassword("p1");
  userInfo.setRoleInfo(new RoleInfo("r1"));
  map.put("k1", userInfo);
  userInfo = new UserInfo();
  userInfo.setUsername("u2");
  userInfo.setPassword("p2");
  userInfo.setRoleInfo(new RoleInfo("r2"));
  map.put("k2", userInfo);
}
<s:iterator value="map" var="var">
    <s:property value="#var.key"/>
    <s:property value="#var.value.username"/>
    <s:property value="#var.value.password"/>
    <s:property value="#var.value.roleInfo.rolename"/><br>
</s:iterator>
或者
<s:iterator value="map">
    <s:property value="key"/>
    <s:property value="value.username"/>
    <s:property value="value.password"/>
    <s:property value="value.roleInfo.rolename"/><br>
</s:iterator>

8、Map嵌套Map(自定义对象属性)
public String execute(){
  map = new TreeMap<String,Map<String,UserInfo>>();
  Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>();
  UserInfo userInfo = new UserInfo();
  userInfo.setUsername("u1");
  userInfo.setPassword("p1");
  userInfo.setRoleInfo(new RoleInfo("r1"));
  userInfo = new UserInfo();
  userInfo.setUsername("u11");
  userInfo.setPassword("p11");
  userInfo.setRoleInfo(new RoleInfo("r11"));
  innerMap.put("k1", userInfo);
  innerMap.put("k11", userInfo);
  map.put("key1", innerMap);
  //////////////////////////
  innerMap = new TreeMap<String,UserInfo>();
  userInfo = new UserInfo();
  userInfo.setUsername("u2");
  userInfo.setPassword("p2");
  userInfo.setRoleInfo(new RoleInfo("r2"));
  userInfo = new UserInfo();
  userInfo.setUsername("u22");
  userInfo.setPassword("p22");
  userInfo.setRoleInfo(new RoleInfo("r22"));
  innerMap.put("k2", userInfo);
  innerMap.put("k22", userInfo);
  map.put("key2", innerMap);
}
<s:iterator value="map" var="var">
    <s:iterator value="value">
     <s:property value="#var.key"/>
     <s:property value="key"/>
     <s:property value="value.username"/>
     <s:property value="value.password"/>
     <s:property value="value.roleInfo.rolename"/><br>
    </s:iterator>
</s:iterator>
公文派2025:免费社区版重大安装更新! 距离上一次更新已经过去了将近一年的时间,今天我们带来了全新的免费2025社区版,该版本也是目前最新的版本,无需授权即可使用所有的功能。 阅读详情

相关推荐

告别二极管发热!手把手教你用MOS管搭建同步整流电路(附死区时间设置避坑指南)

本文详细介绍了如何利用MOS管搭建同步整流电路(SR),以替代传统二极管,显著降低导通损耗和发热问题。内容涵盖自驱动方案的选择、关键元件参数计算、PCB布局要点及死区时间设置技巧,帮助工程师优化电源设计效率。

weixin_29540599的博客 451

struts2中s:iterator 标签的使用详解

简单的demo s:iterator 标签有3个属性: value:被迭代的集合 id   :指定集合里面的元素的id status 迭代元素的索引 1:jsp页面定义元素写法 数组或list A 打印结果为: 1A2A3A4A5A 2:索引的用法 如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法 int

maoyuanming0806的博客 6368

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5342

Struts2标签之<s:iterator/>标签详解

在web工程的页面表单中显示数据时,我们可以使用JSTL标签中的标签通过迭代取出数据,而在应用了Struts2框架的web应用中,我们可以用Struts2支持的标签库同样可以实现同样的功能        在struts2标签中,为了实现与JSTL标签库中的标签同样的效果,struts2标签库提供了标签,可以实现从值栈中迭代取出数据,       标签有3个属性:             v

jeason58的博客 1228

Gromacs基础教程一:入门建议

本系列教程针对的群体:非计算化学专业,而是偏生物方向的、有少量分子动力学模拟需求的人群。

m0_67843839的博客 8572

【牛股启动线】副图指标使用技术说明,图文案例分享,通达信炒股指标

如上图,在紫色线在黑色虚线上时,在出现紫色柱线时,通常会出现强势拉升的行情​。柱线加长加上紫色线上扬,进场跟随做多抓强势行情,紫色柱线和紫色线同时做多持续则可以继续持股。如上图,副图指标【牛股启动线】,指标信号包括紫色线走势信号和紫色柱线信号,以及底部的四条虚线技术信号​,还有一条绿色的参考线,一条黑色的虚线两天分档线。如上图,参考买点,紫色柱线开始出现时进场买点,在上图标记的位置对应的就是进场买点​。紫色柱线加长+紫色线上扬,多头共振持股,行情继续拉升阶段,持股待涨或顺势​进场做多。

weixin_69760830的博客 1907

Struts2中<s:iterator>基本用法及示例

见:http://blog.sina.com.cn/s/blog_49bc742801019moo.html Struts2中基本用法及示例 Iterator用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。 参数: 名称 必需 默认 类型 描述 status 否 String 如果设置此

愿我如星君如月 ... 夜夜流光相皎洁 ... 1907

UE4/5编译报错MSB3073终极解决指南:从路径检查到MSVC版本降级

本文针对UE4/5开发中常见的MSB3073编译报错,提供了一套从根源到实战的终极解决指南。文章系统性地讲解了错误成因,并分层次指导排查路径字符、环境变量、MSVC版本兼容性、权限冲突等核心问题,重点介绍了通过降级MSVC编译器版本等关键操作来彻底解决此编译难题。

rl6adventurer的博客 1432

s:iterator的用法

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo:s:iterator 标签有3个属性:    value:被迭代的集合    id   :指定集合里面的元素的id    status 迭代元素的索引1:jsp页面定义元素写法 数组或list&lt;s:iterator value="{'1','2','3','4','5'}" id='num...

在路上 1946

Android 14 (AOSP) 源码架构深度解析与开发者指南

Android14源码的仓库指南信息

保持专注,保持热爱 1186

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8251

<s:iterator>各种遍历用法

&lt;s:iterator&gt;各种遍历用法 4、普通属性 public String execute(){    username = "zhangsan";    password = "123"; } &lt;s:property value="username"/&gt;&lt;br&gt;    &lt;s:property value="password&q

iteye_19399的博客 308

rk3576 点亮 LCD(eDP)

RK3576 处理器集成了对 **eDP (Embedded DisplayPort)** 接口的支持,主要用于驱动嵌入式或笔记本电脑的内置屏幕。支持 **eDP 1.3 版本协议**, 最大可支持 ****4K@120Hz**。

weixin_35723192的博客 352

struts与jsp <s:iterator>使用方法

在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是标签。     action页面里面: List reserveList; reserveList=bookRoomService.queryAllReserve(rBean);   jsp页面里:                                   

kimliu2009的专栏 6712

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

<s:iterator> 属性 value var status 用法详解

代码片段: bgcolor="#CBD6E0" bgcolor="#FFFFFF" > s:iterator 标签有3个属性: value:被迭代的集合,从后台返回的结果集,如value=“queryList”的queryList必须和后台返回的名称一致。 var:页面用于迭代使用的代替名称,如上将“query

sshxdwy的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

<s:iterator>和<s:param>,<s:a>的用法

executeResult="true"> 1、使用它jsp可以直接调用action,而则需要提交表单的动作。 2、在使用时,如果jsp界面中要使用action中的执行结果,那么一定要注意将executeResult属性设为true,这个属性默认是false的,如果不设,遍历将不会执行,因为resultLi

小透明-溶冰 817

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

<s:iterator>及<s:property>的用法

的用法 1,访问Action值栈中的普通属性:    2,访问Action值栈中的对象属性(要有get set方法):      3,访问值栈中对象属性的方法    4,访问值栈中action的普通方法:    5,访问静态方法:    6,访问静态属性:  配置属性文件,允许ognl访问静态方法struts.ognl.allow...=true   

shenghua 739

<s:iterator>的用法

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo: s:iterator 标签有3个属性: value:被迭代的集合 id :指定集合里面的元素的id status 迭代元素的索引 1:jsp页面定义元素写法 数组或list A 打印结果为: 1A2A3A4A5A 2:索引的用法 如果指定了status,

yangpan1725的专栏 704

<s:iterator>的一些用法

记录一下,自己留着用,有些写法总是忘,哎 1:#status.odd 是否奇数行 2:#status.count 当前行数 3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』 4:#status.first 是否第一行 5:#status.last 是否最后一行 6:#status

wymaweiyue的专栏 3419

struts2 <s:iterator> status属性

iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用标签的时候有三个属性值得我们关注 1. value属性:可选的属性,value属性是指一个被迭代的集合,使用ognl表达式指定,如果为空的话默认就是ValueStack栈顶的集合. 2.id属性:可选属性, 是指集合元素的id 3.status属性:可选属性,该属性在迭代时会产生一个IteratorSt

eleman 1608

struts2<s:iterator>遍历map小结

1.MapAction.java import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; ...

choujuechong4238的博客 126

strust2标签<s:iterator>使用时报错500的问题

先说一下,问题的发生,个人做了个小系统,成品以后运行了几次,没有问题,结果最后一次测试时,发现登陆页面报错了: 账号密码输入正确,经过后台登陆后,按理说是应该进入登陆成功后的jsp页面,然而结果却是: 关于 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 报错,多是因为list的取值出问...

SUZHOU_9257的博客 226

<s:iterator> status属性

struts2  status属性  (2013-03-21 16:31:4 转载▼ 标签:  it   iterator标签主要是用于迭代输出集合元素,如list set map 数组等,在使用标签的时候有三个属性值得我们关注 1. value属性:可选的属性,value属性是指一个被迭代的集合,使用ognl表达式指定

rxt2012kc的博客 601

<s iterator>遍历list 及取list下标

后台传入数据如下: request.setAttribute("list",listGoodsSaleRank);jsp页面遍历如下: <table width="50%" border="0" cellspacing="1" cellpadding="2" align="center" class="table-bg"> <tr class="td-list-title">

hacker_Lees的博客 4937
上一篇: hibernate实体类属性应该使用int还是Integer
下一篇: jQuery+zTree加载树形结构菜单
elementf
博客等级 码龄14年 30粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值