간단 에러 처리기
expression.EvaluationException: Accessing member 'requestUri' is forbidden for type 'class org.springframework.web.servlet.support.RequestContext' in this expression context.
a3040
2023. 11. 14. 10:49
작업 상태
#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