뚜룽

Don't know how to iterate over supplied "items" in <c:forEach> 해결 본문

카테고리 없음

Don't know how to iterate over supplied "items" in <c:forEach> 해결

ddooroong 2023. 7. 5. 14:13

STS에서 Spring 웹 프로젝트를 하고 있던 중, 이런 오류를 마추졌다.
"Don't know how to iterate over supplied "items" in <c:forEach>"

에러 화면

iterate 할 수 없다는 걸 보니 forEach를 돌릴 수 없다는 말인 것 같다.
jsp 코드를 확인해보니 ${bdetail}의 값을 반복문으로 가져오는 것으로 되어 있었다.

editBoard.java

jsp에 작성된 bdetail은 Controller에서 아래와 같이 구현이 되었다.
BoardController.java (게시글 수정하기)
- BoardDTO get(String free_seq) 메소드로 상세보기 할 글 번호를 구한다.
- 글번호에 해당하는 글의 정보를 BoardDTO 타입 변수에 담는다.
- model 을 통해 "bdetail" key 값으로 jsp에 데이터를 전송한다.

🧐즉, List 형태가 아니라 하나의 DTO로 리턴하기 때문에 forEach문을 돌릴 수 없던 것이다!


해결


jsp에서 <c:forEach> 부분을 삭제하고, 데이터를 받아오던 부분을 dto 대신
Controller에서 넘겨준 "bdetail"값 그대로 호출하니 오류가 해결되었다.

  • editBoard.jsp


넘겨주는 값이 List인지 DTO 타입인지 꼼꼼히 신경써야겠다.