2012-06-25 50 views
0

我有每個循環,它通過以下方式正常工作:的forEach iterator標籤

<c:forEach begin="0" end="10" varStatus="status">'+ 
     <td><div id="text<c:out value="${status.index}"/>"> </div></td> 
</c:forEach>'+ 

我在Action類下面的代碼。我只想在上面的循環中通過listSize代替end =「10」。

Vector<String> l1 = new Vector<String>(); 
Vector<String> v1 = new Vector<String>(); 
l1.add("listSize"); 
v1.add(String.valueOf(list.length)); 
for (int i=0;i<list.length;i++){ 
    if (notEmpty(list[i].getText())){ 
    l1.add("text"+i); 
    v1.add(list[i].getText()); 
     } 
}response.getWriter().print(JSONUtils.toJSON(new Collection[]{l1}, new Collection[]{v1})); 

確實有任何想法嗎?

回答

1

使用<c:set>來設置一個變量(從JSP/JSTL中)或者首先將變量添加到requestScope(在JSP的Java部分),然後通過requestScope.variable引用該變量。

然後在<c:forEach>標記中使用end="${variable}"

問候。

+0

我曾嘗試,它的顯示錯誤「空」爲空或不是一個對象。 – user1479178

+0

好吧,讓我看看你的整個代碼。 – Queequeg

0

您需要爲請求設置「listSize」屬性,該請求將包含列表的大小。

所有答案在這裏:Pass variables from servlet to jsp

+0

我已將該屬性設置爲請求,如下所示。 request.getSession()。setAttribute(「listSize」,list.length); – user1479178

+0

並在jsp中使用並在end屬性中使用此計數變量。 (即end =「{count}」) – user1479178

+0

您可以使用end =「$ {listSize}」。如果我確實幫助過你,請將我的答案標記爲正確。 – JMelnik

相關問題