2011-03-14 124 views
0

我已经搜索周围,找不到答案。s:迭代器测试,如果在某个迭代

假设我在会议中有5个项目的会话中有一个列表。我如何判断我是否在s:iterator循环的某个迭代中?例如,列表是[a,b,c,e,f],我想遍历列表并打印a,b,c,然后注入/打印d,然后在页面上打印e f,使其看起来像列表a b c d e f

我一直想这样的:

<s:iterator value="example" status="stat"> 
<s:if test="#stat.count == '3'"> 
    inject d... 
</s:if> 
<s:else> 
    s:property tag to print values 
</s:else> 
</s:iterator> 

回答

3

状态属性,你要找的是“指数”,而不是“数”。另外,我不知道它是否是代码中的错字,或者只是在您的文章中,但是您的status =“stat”属性在引号内有等号。试试这个:

<s:iterator value="example" status="stat"> 
<s:if test="#stat.index == '3'"> 
    inject d... 
</s:if> 
<s:else> 
    s:property tag to print values 
</s:else> 
+0

感谢关于索引vs计数的指针。我使用了上面提到的,也注意到我不得不忽略索引号的周围。我认为这一定是我自从老版本以来运行的struts2版本中的一个bug。当我没有忽略单引号时,它永远不会评估并通过if测试,它总是会打印出else块。 – Barry 2011-03-14 21:34:55

+0

它不是一个错误“3”是字符串,“3”是字符,3是数字。 – Quaternion 2011-03-14 22:05:04

+0

感谢您的澄清我不清楚这一点 – Barry 2011-04-25 17:12:24