2012-07-11 56 views
0

我想回路中的一些代碼沒有幾次都是這樣支柱2環

<s:iterator value="#session.count"> 
     <TD WIDTH='10%' BGCOLOR='#000080'>&nbsp;</TD> 
    </s:iterator> 
基於價值「計數」,存儲在會話

,那些很多時候我需要添加的標籤,上面 但它不像預期的那樣循環。我想知道的是 是數組或集合對象。 但是 如何在JSP中使用Struts 2標籤循環代碼N no。

+0

你的計數值是多少?你打印了嗎? http://www.mkyong.com/struts2/struts-2-iterator-tag-example/ – kosa 2012-07-11 14:16:57

+0

嗨@thinkSteep感謝您的回覆。 count的值就是int。在1到100之間。例如,如果它50我需要循環代碼50次。我知道在你給出的鏈接的例子中迭代List對象。 – MadhuB 2012-07-11 17:16:39

回答

0

看起來很容易。

使用本:

<s:subset source="your_source" count="#session.count"> 
    <s:iterator> 
     <td>test</td> 
    </s:iterator> 
</s:subset> 
+0

如果'your_source'是int,該怎麼辦?像平面java .. for(int i = 0; i MadhuB 2012-07-11 18:32:13

+0

@MadhuB接受這個答案是沒有意義的,因爲你沒有資源,只想迭代'N'次。如果你有一個至少有'n'條目的集合,這隻會做到這一點。 – 2012-07-11 20:28:47

0

您可以看到iterator示例herehere

6

對於一個簡單的for循環,使用beginend屬性:

<s:iterator begin="0" end="%{#session.count}"> 
    <td width='10%' bgcolor='#000080'>&nbsp;</td> 
</s:iterator> 

我還使用CSS更好一點。

查看iterator tag docs


現在你已經提到你正在使用一個非常舊的版本的S2。在這種情況下,使用JSTL's c:forEach tag,沒有理由使用S2標籤。它具有相同的開始/結束語義,並且與創建無用列表相比,仍然有很大的意義。

+0

開始,結束和步驟屬性只能從2.1.7開始。我正在使用Struts 2.0.11。 – MadhuB 2012-07-12 12:29:23

+1

@MadhuB這種類型的信息是你想要放在你的問題中的,*特別是當它是那個版本的舊版本時。你真的不需要在生產中使用該版本。不升級,特別是在存在安全問題的情況下,這不是一個好主意。 – 2012-07-12 13:32:15