작업 상태
#springboot 버전 변경 후에 발생함
//id 'org.springframework.boot' version '3.0.2'
id 'org.springframework.boot' version '3.1.3'
에러 메시지
expression.EvaluationException: Accessing member 'requestUri' is forbidden for type 'class org.springframework.web.servlet.support.RequestContext' in this expression context.
원인
문제부분
<script th:inline="javascript">
/*<![CDATA[*/
//let loc = /*[[${#ctx.springRequestContext.requestUri}]]*/'';
#부트 버전 변경후 나머지 종속성으로 thymleaf버전도 3.1.3으로 변경되었는데 3.1에서는 제거된 방식이라고 함
처리
기존 방식
controller
@GetMapping(value = "/admin/note.html")
public String indexGetMethod(Model model) {
return "admin/note";
};
view
<script th:inline="javascript">
/*<![CDATA[*/
//let loc = /*[[${#ctx.springRequestContext.requestUri}]]*/'';
변경후 > 자바쪽에서 현 위치를 파악후 전달해줌
controller
@GetMapping(value = "/admin/note.html")
public String indexGetMethod(Model model, HttpServletRequest request) {
model.addAttribute("servletPath", request.getServletPath());
return "admin/note";
};
view
<script th:inline="javascript">
/*<![CDATA[*/
//let loc = /*[[${servletPath}]]*/'';
참고
getRequestURI is null with Netty and Spring Boot 3 - Stack Overflow
'간단 에러 처리기' 카테고리의 다른 글
java.lang.IllegalStateException: getOutputStream() has already been called for this response (0) | 2023.05.17 |
---|---|
SyntaxError: Unterminated string constant (3:13) (0) | 2023.05.16 |
WARN o.s.w.s.m.s.DefaultHandlerExceptionResolver (0) | 2023.05.15 |
virtualbox7, ubuntu 22 gnome-terminal 실행안됨 (0) | 2023.05.12 |
Uncaught TypeError: https.Agent is not a constructor (0) | 2023.05.06 |