2011-03-14 126 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