2012-06-25 3 views
0

У меня есть для каждого цикла, что он отлично работает следующим образом:Foreach итератора тег

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

У меня есть следующий код в классе действий. Я просто хочу передать 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 (в Java-части JSP), а затем обратиться к переменной через requestScope.variable.

затем используйте end="${variable}" в теге <c:forEach>.

С уважением.

+0

Я попытался и он показывает ошибку «нуль» является нулевым или не объект. – user1479178

+0

ну, покажите мне весь ваш код. – Queequeg

0

Вам необходимо установить атрибут listSize для запроса, который будет содержать размер списка.

Все ответы здесь: Pass variables from servlet to jsp

+0

Я установил атрибут для запроса, как показано ниже. request.getSession(). setAttribute ("listSize", list.length); – user1479178

+0

И в jsp с помощью и использовал эту переменную count в атрибуте end. (i.e end = "{count}") – user1479178

+0

Вы можете просто использовать end = "$ {listSize}". Если бы я помог вам, пожалуйста, отметьте мой ответ как правильный. – JMelnik

Смежные вопросы