悟心

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。 上人生的旅途罢。前途很远,也很暗。然而不要怕。不怕的人的面前才有路。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  93 随笔 :: 1 文章 :: 103 评论 :: 0 Trackbacks
struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
    value:被迭代的集合
    id   :指定集合里面的元素的id
    status 迭代元素的索引
1:jsp页面定义元素写法 数组或list

<s:iterator value="{'1','2','3','4','5'}" id='number'>
    <s:property value='number'/>A
</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可以直接定义为:
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";}}
<s:iterator value="label" id="id">
    <s:property value="#id.attrName" />
</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>  
posted on 2009-11-20 17:56 艾波 阅读(210426) 评论(13)  编辑  收藏 所属分类: SS2H

评论

# re: struts2的s:iterator 标签 详解[未登录] 2013-08-14 18:45 111
111  回复  更多评论
  

# re: struts2的s:iterator 标签 详解[未登录] 2013-08-14 18:46 111
@111
  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2013-09-18 14:33 yxd1130@sina.cn
很不错 但是我想问问的 这个c:forEach的区别是什么啊?  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2014-02-05 02:59
只有用struts2才用iter@yxd1130@sina.cn
  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2014-03-22 16:37 扯淡
扯淡玩意。 第一个例子就报错;  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2014-03-22 16:38 you die
org.apache.jasper.JasperException: An exception occurred processing JSP page /user.jsp at line 36

33: </tr>
34: </s:iterator>
35: <s:iterator value="{'1','2','3','4','5'}" id='number'>
36: <s:property value='number'/>A
37: </s:iterator>   回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2014-07-08 15:42 luguo
@you die
36: <s:property value='number'/>A
加个 "#number"  回复  更多评论
  

# re: struts2的s:iterator 标签 详解[未登录] 2014-10-28 14:56 123
@扯淡
菜鸟就别乱说  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2015-02-25 11:37 caicai
@扯淡
报错你自己的问题,怎么别人就不报错?还扯淡?学东西不是让你复制粘贴的,给你个代码就算人家真错了,你不能虚心请教下?爱看看不爱看滚  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2015-09-30 15:46 "{'1','2','3','4','5'}"
"{'1','2','3','4','5'}"换成"{\"1\",\"2\",\"3\",\"4\",\"5\"}"就好了  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2015-12-01 07:37 er
@yxd1130@sina.cn
都差不错 如果在session里面获取 一个用${}来获取 一个用#session.name  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2016-04-29 19:55 werwe
@caicai
当你们发生分歧的时候,应该仔细寻找问题的根源,这样的话,大家都能提高,而抬杠的话,只能是两个人都憋一肚子气  回复  更多评论
  

# re: struts2的s:iterator 标签 详解 2016-06-01 08:35 porter
@you die
number签名加#  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: