直接把list用request传到jsp页面 
<s:iterator var="u" value="#request.users"> 
<tr> 
<td><s:property value="#u.uid"/></td> 
<td>¥{u.uname}</td> 
<td><s:property value="#u.upass"/></td> 
<td><a οnclick="return isDel()" href="<s:url action="Del"><s:param name="user.uid" value="#u.uid"/></s:url>">删除</a></td> 
<td><a href="<s:url action="To"><s:param name="user.uid" value="#u.uid"/></s:url>">编辑</a></td> 
</tr> 
</s:iterator>

<s:iterator />可以遍历 数据栈里面的任何数组,凑集等等

在应用这个标签的时辰有三个属性值得我们存眷 
1. value属性:可选的属性,value属性是指一个被迭代的凑集,应用ognl表达式指定,若是为空的话默认就是ValueStack栈顶的凑集. 
2.id属性:可选属性, 是指凑集元素的id 
3.status属性:可选属性,该属性在迭代时会产生一个IteratorStatus对象,该对象可以断定当前元素的地位,包含了以部属性办法:

int getCount(); 迭代元素个数 
int getIndex(); 迭代元素当前索引 
boolean getFirst(); 是否为第一个 
boolean getEven(); 是否为偶 
boolean getLast(); 是否最后一个 
bolean getOdd(); 是否为奇

因为iteratorstatus对象并不是ognl的根对象是以接见须要加上 #接见如下例子: 
<s:iterator value=”{’dd’,""bb’,""cc’}” status=”st”> 
<s:if test=”#st.odd”> 
<s:property value=”#st.index”/> 
</s:if> 
</s:iterator>

iterator也可以迭代map对象,map对象中有几对key-value 就迭代几次,分别应用 
<s:property value=”key”/> 
<s:property value=”value”/>

iterator也可以迭代简单的数组凑集 
<s:iterator value="collection1" status="status"> 
<s:property value="collection1[#status.index][0]"/> 
<s:property value="collection1[#status.index][1]"/> 
</s:iterator> 
申明:[#status.index][?]" ,指导遍历数组指定的脚标元素, 
若是你不知道数组的长度呢? 
//以下是遍历数组每一个元素 
<s:iterator value="total" status="stuts"> 
<s:iterator value="total[#stuts.index]" > 
<s:property/><br> 
</s:iterator> 
</s:iterator> 
//直接应用<s:property/>也可以打印出每一个数组内容

***********iterator的value****************** 
1.若是须要引用valueStack中的值,须要应用如许的情势。 
<s:iterator value="#userList" /> //userList在action项目组被保存在Request中,所以应用#加属性名来引用值。

2.若是凑集的值是经由过程action的办法,假设我们的action中有一个getListMenu办法,返回一个List凑集。 
我们可以应用如下的情势来引用这个凑集,并用s:iterator来输出。 
<s:iterator value="listMenu" />

3.iterator的value应用定义好的体式格式,如: 
<s:iterator value="{1,2,3,4}" /> //如许跌代输出的值就是1.2.3.4这四个值。

**************iterator的各个对象属性输出******************************** 
iterator中输出具体值,若是,在上方我们的list中的对象,有两个属性,都是String类型,一个是name,一个是url 
1. <s:property value="name" /> //如许我们将可以输出跌代对象的name属性值。

2. 若是我们应用<s:url />来将跳转过后的url进行处理惩罚,该如何来做? 
<s:url value="%{url}"/> //%{}ognl的表达式,如许的值可以或许将url的值进行<s:url/>的处理惩罚.实际上就是转为绝对路径。如许,我们就可以对于一些因跳转换产生的路径题目.原因:因为<s:iteratotr />今后,当前的对象应当就在ValueStack顶部了,如许当时的url实际上就是对象的url属性了

C:应用ognl输出对应的值。 
<s:textfield name="loginName" value="%{#request.loginNames}"/> 
应用此表达式,会生成一个文本框,并且,若是request.attribute中有loginNames属性,将会做为些文本框的默认值。 
若是只应用#request.loginNames在struts2的标签内部,是不会显示任何值的,注不测面加上的%{}附号,才会被正常的应用。

若是如EL说话一样直接输出文件,如在一个<a></a>之间的innerHTML文本为#request.loginNames的值,我们只要应用:<s:property value="#request.loginNames" />使可以正常应用!

重视:

1.¥{}是EL说话的 %{}如许的情势是ognl表达式说话的,在struts2的标签内部,应用%{}如许的情势,在标签外部可以应用¥{}EL说话的体式格式。若是在struts2的标签内部应用¥{}如许的体式格式,会呈现以下的错误提示:

According to TLD or attribute directive in tag file, attribute value does not accept any expressions

2. 很多时辰,我们应用struts2的一些标签,属性是须要接管凑集的,若是凑集是保存在 request,session,或者是值栈(非根对象的栈顶),可以应用#变量名的体式格式,若是获取的值是在Action中经由过程特定的办法来获取,就须要应用如 value="userList"如许的体式格式,只是去掉了前面的#。

以下几个简单的例子: 
<s:iterator/> 标签有3个属性: 
value:被迭代的凑集 
id :指定凑集里面的元素的id 
status 迭代元素的索引

1:jsp页面定义元素写法 数组或list

1. <s:iterator value="{""1"",""2"",""3"",""4"",""5""}" id=""number""> 
2. <s:property value=""number""/>A 
3. </s:iterator>

打印成果为: 1A2A3A4A5A

2:索引的用法 
若是指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个办法 
int getCount()返回当前迭代了几个元素 
int getIndex()返回当前元素索引 
boolean isEven()当然的索引是否偶数 
boolean isFirst()当前是否第一个元素 
boolean isLast() 
boolean isOdd()当前元素索引是否奇数

<s:iterator value="{""a"",""b"",""c""}" id=""char"" status=""st""> 
<s:if test="#st.Even"> 
如今的索引是奇数为:<s:property value=""#st.index""/> 
</s:if> 
当前元素值:<s:property value=""char""/> 
</s:iterator>

3:遍历map 
value可以直接定义为:

1. value="#{"1":"a","2":"b"}"

每个元素以都逗号隔开。元素之间的key和value 冒号隔开 
value也可所以数据栈里面的java.util.Map对象 
遍历写法如下:

<s:iterator value="map" id="id" status="st"> 
key : <s:property value=""key""/> 
value:<s:property vlaue=""value""/> 
</s:iterator>

当然key 和value 都可以使java 的 Object

3:遍历数据栈.简单的List类, 
List<Attr> 
class Attr{String attrName;String getAttrName(){return "123";}}

1. <s:iterator value="label" id="id"> 
2. <s:property value="#id.attrName" /> 
3. </s:iterator>

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

4:遍历2个list; 
List<AttrName> attrN {color,size,style} 
List<AttrValue> attrV {red,20,gay} 
这2个list的元素是一一对应的,一个attrN对应一个attrV

<s:iterator value="%{attrN }" id="id" status="status"> 
index is : <s:property value=""status.index""/> 
attrName is : <s:property value=""id""/> or <s:property value=""%{id}""/> 
attrName is : <s:property value=""%{attrV[#status.index]}""/> 
</s:iterator>

 

struts2+jsp 遍历 <s:iterator><s:property>的更多相关文章

  1. [struts2]Struts遍历标签<s:iterator>总结 [转]

    转至:http://blog.csdn.net/lufeng66/article/details/7338098 struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几 ...

  2. Struts2 JSP中将list,set ,Map传递到Action然后遍历(三十五) - 雲淡風輕 - ITeye技术网站

    1.使用Strut2的的集合对象:在jsp初始化action中的list然后提交到action2.使用Struts标签,实现多个用户同时注册(注意属性配置文件)3.pojo package com.s ...

  3. struts2的s:iterator 标签 详解

    s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法 数组或list <s:iterator ...

  4. struts2的s:iterator 标签 详解<转>

    struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo: s:iterator 标签有3个属性:     value:被迭代的集合     id   : ...

  5. struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

    原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($(&q ...

  6. java 数据类型:集合接口Collection之常用ArrayList;lambda表达式遍历;iterator遍历;forEachRemaining遍历;增强for遍历;removeIf批量操作集合元素(Predicate);

    java.util.Collection接口 Java的集合主要由两个接口派生出来,一个是Collection一个是Map,本章只记录Collection常用集合 集合只能存储引用类型数据,不能存储基 ...

  7. struts2+jsp+hiberbate 双重遍历

    今天弄了个双重遍历,由于自己水平有限,做了好久才搞定. 例子如下:也不算是例子,简要代码吧 action中有属性: private List<Contents> content; 其中co ...

  8. ibatis遍历数组:ParameterObject or property was not a Collection, Array or Iterator.

    这个问题在使用ibatis的<iterate></iterate>时出现的,很简单,但是蛋疼了很久,记下来 首先从错误提示看,明显意思是你给出ibatis的参数不对路,人家不认 ...

  9. struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组

    在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...

随机推荐

  1. How to call javascript function on page load in asp.net

    How to call javascript function on page load in asp.net 解答1,使用RegisterStartupScript来运行 需要注意的是,下面的dem ...

  2. Extending Widgets with the Widget Factory

    https://learn.jquery.com/jquery-ui/widget-factory/extending-widgets/ 实例 https://github.com/tkvw/jQue ...

  3. Linux添加目录到环境变量以及添加Sublime Text到环境变量

    本文主要介绍了Linux添加目录到环境变量以及添加Sublime Text到环境变量,通过具体的解释说明,让我们从中学到Linux添加目录到环境变量以及添加Sublime Text到环境变量的精髓所在 ...

  4. websocket 无需通过轮询服务器的方式以获得响应 同步在线用户数 上线下线 抓包 3-way-handshake web-linux-shell 开发

    https://code.google.com/archive/p/phpwebsocket/source/default/source The WebSocket API (WebSockets) ...

  5. pve-备份

    一个50g的磁盘,用了13分钟 INFO: starting new backup job: vzdump 111 --node cu-pve04 --mode snapshot --compress ...

  6. 16/7/7_PHP-构造\解析函数

    昨天又问老师问题,老师还是强调要用博客之类记录下每天的学习的习惯. 我个人的想法是一些知识点不用笔记一下 在脑海的理解不是太深.但是老师都这么说了我老师乖乖的记录下今天的学习的一些知识.心得.技巧等等 ...

  7. 【HANA系列】SAP HANA计算视图(calculation views)使用RANK报错

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA计算视图(cal ...

  8. unity编辑器Hierarchy添加图标

    效果 素材 using UnityEditor; using UnityEngine; using System.Collections.Generic; [InitializeOnLoad] cla ...

  9. js中ajax请求返回的数据处理成数组后,局部变量赋值给全局变量后,为空

    第二步是想把ss的值扔给res_r,两个数组直接相等即可,可谁想到,取出来的值是空. 如图取出来的值是空. 我一脸懵逼,调试了些许时间,最后把ss遍历一下,在重新push进res_r 再来看效果,已经 ...

  10. TensorFlow学习笔记6-数值计算基础

    TensorFlow学习笔记6-数值计算 本笔记内容为"数值计算的基础知识".内容主要参考<Deep Learning>中文版. \(X\)表示训练集的矩阵,其大小为m ...