2017-12-18 10 views
0

다음과 같이 내가 JSP로 서블릿에서 목록을 전달하고 표시하지 :JSP 반복은

<c:forEach items="${sessionScope.messageList}" var="msg"> 
    <tr> 
     <td>Agent ID: <c:out value="${msg.getID()}"/></td> 
    </tr> 
</c:forEach> 

웹 응용 프로그램을 :

Agent agent = (Agent) request.getSession().getAttribute("agent"); 

List<Message> messageList = agent.mailbox.getMessages(); 
request.setAttribute("messageList", messageList); 

request.getRequestDispatcher("/message.jsp").forward(request, response); 

를 그런 다음, 나는 JSP 파일을 반복하고 실행하고 잘 작동, 오류 등 ... 그러나 목록의 출력이 표시되지 않습니다.

+0

jsp 페이지 상단에있는이 줄을 확인하십시오. <% @ page session = "true"%>' –

+1

이 pls를 살펴보십시오. 문제가 해결 될 수도 있습니다 https://stackoverflow.com/questions/26652712/foreach-loop-not-displaying-any-output-in-jsp – javatar

+0

@ArvindKatte 예, 줄이 있습니다. – Axel

답변

2

코드를 사용하려면 JSTL을 설치해야했습니다.

  1. here에서 Jar 파일을 다운로드하고 WEB-INF/lib 폴더에 넣으십시오.
  2. maven을 사용하는 경우 종속성을 추가하십시오.
  3. 은 JSP 페이지의 상단에 태그 라이브러리를 추가
  4. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 지금 당신은 당신의 JSP에 JSTL을 사용할 수있는 프로젝트

를 다시 빌드합니다.

0

요청 속성을 설정 중이지만 sessionScope.messageList에서 반복합니다.

requestScope.messageList 또는 간단히 messageList을 사용하십시오.

+0

변경을 시도했지만 여전히 동일한 문제 – Axel

+0

아마도 메시지 목록이 비어 있음을 의미합니다. 디버거를 사용하십시오. –

+0

비어 있지 않습니다. 서블릿을 디버깅했으며 messageList가 비어 있지 않습니다. – Axel