728x90
상품 상세 페이지 구현하던 중
javax.servlet.jsp.JspTagException
에러가 발생했다. 상세 정보로는
Don't know how to iterate over supplied "items" in <forEach>
라고 알려주는데,
일반적으로는 LIst 타입이 아닌데 JSTL에서 forEach를 사용해서 발생하는 오류이다.
읽어봐도 forEach 내의 item을 어떻게 iterate를 할 수 있는지 알 수 없다고 쓰여 있으니까 말이다.
간단하게 이 문제면 해결하기 쉽습니다.
예를 들면 다음과 같은 경우 소스를 보면
forEach 내에 when을 사용하여 목록 전체를 구하는 것이 소스 코드의 의도이다.
근데 이렇게 소스를 작성하면 방금과 같은 오류가 발생합니다.
그 이유는 item을 dto 타입으로 설정했기 때문에 즉, Controller에서 보내줄 때
List 타입이 아니기 때문이다.
위 코드를 보면 DTO 타입으로 설정했기 때문에 에러가 발생한 이유입니다.
해결법은 목록 페이지를 LIst<DTO> 타입으로 설정해서 setAttribute("list",list);
설정해주시고 item에 ${list} 값을 넣어주면 됩니다.
그럼 정상적으로 출력되는 걸 볼 수 있습니다.
마치며
오늘은 javax.servlet.jsp.JspTagException 에러에 대해서 알아봤습니다.
다음 포스팅에서 뵙겠습니다.
728x90
'[ Error ] > TomCat' 카테고리의 다른 글
[ TomCat ] org.apache.jasper.jasperexception (0) | 2023.04.25 |
---|---|
[ TomCat ] Not allowed to load local resource 에러 해결 (0) | 2023.04.19 |