2011-05-30 27 views
4

在我的spring web應用程序中,我在模型屬性中使用了arraylist,我想在JSP中以表格格式顯示該屬性。我需要動態地在列中安排列表項。下面是隻創建一列的代碼,但我需要在兩列中以偶數對排列。在jsp上爲arraylist中的項目創建動態表

<table> 
    <c:forEach items="${artifact.answerOptions}" var="answeroption" varStatus="status"> 
    <tr> 
     <td> 
     <form:radiobutton path="choosenAnswers" value="${answeroption}"/> 
    <label for="choosenAnswers" class="lowerlabel"><c:out value="${answeroption.answerText}"/></label> 
     </td> 
    </tr> 
    </c:forEach> 
    </table> 

這裏answerOptions是具有answerText屬性的AnswerOption bean的列表。 上面的代碼創建表,但有一列,但我需要他們甚至像下方爲奇數的方式安排:據我所知這是不可能的原因在迭代器在同一時間,你將有隻有一個answerOptions對象訪問

<table> 
    <tr> 
    <td> List Item 1</td> 
    <td> List Item 2</td> 
    </tr> 
    <tr> 
    <td> List Item 3</td> 
    <td> List Item 4</td> 
    </tr> 
    <tr> 
    <td> List Item 5</td> 
    <td> List Item 6</td> 
    </tr> 
</table> 

回答

4

改爲使用begin,endstep屬性。您可以讓它迭代2並直接通過索引獲取列表項。

<table> 
    <c:forEach begin="0" end="${fn:length(artifact.answerOptions)}" step="2" varStatus="loop"> 
    <tr> 
     <td>${artifact.answerOptions[loop.index]}</td> 
     <td>${artifact.answerOptions[loop.index + 1]}</td> 
    </tr> 
    </c:forEach> 
</table> 

(沒有這不會引發ArrayIndexOutOfBoundsException當你有一個項目單量)

+0

感謝您的解決方案,我正在尋找相同的。 – 2011-05-31 17:26:39

+0

不客氣。既然你是新來的,請不要忘記標記接受的答案,如果它對解決問題有幫助的話。另見http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – BalusC 2011-05-31 17:33:53

0

不是2,所以你不能像這樣格式化它。

+0

是否有另一種方式來安排如上圖所示的方式列表中的項目,就像任何標記庫,這將允許訪問甚至列表中的奇怪元素? – 2011-05-30 06:21:58

+0

@Sunil:我不太瞭解標籤庫,因此無法正確告訴你任何東西是否可用。 – 2011-05-30 06:40:40