: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello!], template might not exist or might not be accessible by any of the configured Template Resolvers] with root cause
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [hello!], template might not exist or might not be accessible by any of the configured Template Resolvers
at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE]
Thymeleaf 500 문법에러.
스프링으로 웹개발을 하면서 정말 셀수도 없이 많이 만나보는 에러입니다….
원인은 생각보다 매우 간단한데요.
th: 로 요청한 데이터값이 NULL이거나, 애초에 return에 오타가 있거나 잘못했을 경우입니다 !
데이터가 없을 경우 자바 콘솔창에 친절하게 어떤 데이터가 null이여서 에러가 발생했는지 알려주기에, 정신만 바짝 차리고 본다면 전혀 어려울게 없는 에러입니다 🙂
예시:
<span th:text="'성함: '+ ${cust.username}"></span>
위와 같이 작성을 한다고 가정했을때, 만약에 cust라는 객체에 username변수가 Null값이라면?
500에러가 뜹니다… 데이터를 가져오기로 했는데 가져오니 null인거죠 !
그렇다면, “만약에” 없을때는 해당 데이터 값을 안가져오게 하고 싶다면?
th:if 문을 써서 판별하여 태그 자체를 만들지 않으면 에러가 안뜨겠죠??
만약에 데이터가 존재한다면 그때는 보여주는…말그대로 “만약”이라는 if문을 써서 처리를 하면 됩니다.
물론 DTO나 Controller에서 null일 경우를 사전에 방지하고자 default value를 설정해줘도 상관은 없습니다.
728x90
'Error' 카테고리의 다른 글
[Java Error] java.lang.IndexOutOfBoundsException 해결법 (0) | 2023.03.20 |
---|---|
[Spring] test코드 실행 시 NullPointerException 발생 (Serivce 증명시) (2) | 2023.03.17 |
MyBatis Error: Invalid bound statement (not found) 불일치 ! (0) | 2023.02.01 |
부적합한 열 유형 : 1111 란? (0) | 2023.01.20 |
ORA-00933: SQL command not properly ended ??…..ㅠㅠㅠ (0) | 2023.01.20 |