2013-03-26 55 views
8

我正在使用Struts2處理JSP,我必須遍歷兩個列表,並更改每個<tr/>打印的背景代碼。Struts2增加前一集<s:set />值

我的JSP片段:

<s:set var="counter" value="0" scope="page" /> 
<s:iterator value="listaContoCapitale" status="i"> 
    <s:iterator value="utilizzi" status="j"> 

    <s:if test="#counter == 0 || #counter % 2 == 0"> 
     <s:set var="trclass" value="'rigaSfondo1'" scope="page" /> 
    </s:if> 
    <s:else> 
     <s:set var="trclass" value="''" scope="page" /> 
    </s:else> 
    <tr class="${trclass}"> 
     ....tds 
    </tr> 
    </s:iterator> 
    <s:set var="counter" value="here i have to change its value (increment it by1)" /> 
</s:iterator> 

我需要增加我的櫃檯內循環的每一步。有沒有辦法通過一個簡單的struts標籤增加我的計數器值?我知道我可以使用Java scriptlet,但如果可能的話,我寧願保持JSP清晰。

+0

除了羅馬的回答,請考慮使用三元縮短你的意思是與三元什麼類的決策邏輯 – 2013-03-26 17:05:44

+0

? – Emaborsa 2013-03-27 08:02:59

回答

13

您不需要創建參考變量,只需在迭代器中使用#i.index#i.count即可。它已經增加了迭代器標籤本身。

請注意,「count」爲1,「index」爲0。

總是檢查docs

如果您仍然需要自己的櫃檯

<s:set var="counter" value="0"/> 

增量

<s:set var="counter" value="%{#counter+1}"/> 
+0

需要一個單獨的計數器,因爲它需要基於內部循環,並且在外部環路顛簸時不會重置。 – 2013-03-26 17:04:28

+0

我不能使用迭代器的基本計數器,如果您檢查我的代碼,您會看到外部循環和內部循環都不會給我一個從奇數到偶數交替的正確計數器,以設置背景顏色(trclass變量);在任何情況下,它無關緊要,如果它開始於0或1 ....在發佈我的問題之前,我試過你的解決方案( ),但它通過翻譯JSP頁面給了我一個錯誤。明天我會再試一次...... – Emaborsa 2013-03-26 19:31:06

+0

檢查奇怪或甚至你可以使用'j.even'或'j.odd'它是布爾值。最後的聲明應該起作用,不是嗎? – 2013-03-26 19:42:44