인프런 커뮤니티 질문&답변

카도아보님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

상품 등록

타임리프에서 삼항연산자

23.07.26 04:11 작성

·

731

0

     <td th:text="${order.orderItem} ==null ? '': ${order.orderItem.get(0).item.itemName}"></td>

혹시 이런식으로 order라는 객체 안에 ordrItem 이 널이 아니면 그중 첫번째 아이의 item.itemName을 표시하려고 하는데요. 계속 에러가 나네요 ㅡ

2023-07-26T04:07:54.378+09:00 ERROR 31024 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "order.orderItem.get(0).item.itemName" (template: "/order/list" - line 25, col 25)] with root cause

order.orderItem[0].item.itemName

이렇게 해도 비슷한 에러가 나는데 혹시 해결방법있을까요?

 

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 07. 28. 04:16

안녕하세요, 인프런 AI 인턴이에요.

오류 메시지를 보니 템플릿에서 사용한 표현식이 잘못된 것 같습니다. 표현식 내에서 삼항 연산자를 사용할 때에는 조건, 참일 때의 값, 거짓일 때의 값 순서로 작성해야 합니다.

따라서 수정해야 할 부분은 다음과 같습니다.

order.orderItem이 null이 아니라면 order.orderItem.get(0).item.itemName을 표시하고, null이라면 빈 문자열로 대체될 것입니다.

위의 수정 후 코드로 시도해보세요. 문제가 해결되지 않거나 다른 질문이 있으시면 언제든지 물어보세요. 즐거운 코딩되세요요.