작업 상태

#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

+ Recent posts