цикл foreach не работает при открытом всплывающем окне - PullRequest
0 голосов
/ 17 июня 2010

Поскольку каждый цикл не работает в открытом всплывающем окне, в то время как одна и та же коллекция, которую я вижу, когда пишу ее на странице

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>my cart</title>
</head>
<body>
<% ArrayList cart=(ArrayList)session.getAttribute("Cart"); 
out.println(cart);
//this line is working
%>
<table>
      <tr bgcolor="#EAEAFF">       
   <td><b>Product ID</b></td>   

  </tr>
  <c:forEach items="${cart}" var="current">
        <tr>
           <td><c:out value="${current}"/></td>            
        </tr>
      </c:forEach>      
      </table>
</body>
</html>

Ответы [ 2 ]

3 голосов
/ 17 июня 2010

Я вижу две проблемы с кодом, который вы разместили:

1 - дело в cart неверно. В следующем коде вы должны иметь Cart с большой буквы C:

<c:forEach items="${Cart}" var="current">

Также этот код

...
<% ArrayList cart=(ArrayList)session.getAttribute("Cart"); 
out.println(cart);
//this line is working
%>
...
<c:forEach items="${cart}" var="current">

не берет переменную cart, созданную вами с помощью скриптлета (если вы об этом думаете). cart - это локальная переменная в сервлете, сгенерированная из вашего JSP. Тег не сможет получить к нему доступ).

2 - где находится объявление taglib для вашего тега c:forEach? Что-то вроде:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

Если сервер не распознает тег как тот, который он есть, он будет выводить объект непосредственно в ответ. Ваш браузер не распознает <c:forEach> и будет игнорировать его (т. Е. Он есть в исходном коде, но не отображается на экране).

Используйте следующий код для JSP, и он должен работать:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>my cart</title>
</head>
<body>
<table>
  <tr bgcolor="#EAEAFF">       
    <td><b>Product ID</b></td>   
  </tr>
  <c:forEach items="${Cart}" var="current">
    <tr>
     <td><c:out value="${current}" /></td>            
    </tr>
  </c:forEach>      
 </table>
</body>
</html>
0 голосов
/ 17 июня 2010
<c:forEach items="${sessionScope.cart}" var="current">

Это должно сработать, вы пытаетесь получить переменную, которая, вероятно, выходит за рамки по умолчанию (страница).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...