Javascript

.js 파일에서 EL태그의 값 사용하기

비뀨_ 2022. 1. 19. 15:19

Spring 프로젝트를 할 때 프로젝트의 ContextPath 를 비동기 통신시 써야 될 일이 왕왕있다.

 

http://localhost:8080/aaaaa/member/login
/* contextPath : localhost:8080의 다음으로 나오는 일반적인 프로젝트명 (aaaaa) */

물론 아래와 같이 Jsp에서 EL을 써서  ${pageContext.request.contextPath} 라고 써주면 된다. 

/* header.jsp 파일 내부*/
<script>
$(function () {
    //메뉴 ajax
        $.ajax({
            url: "${pageContext.request.contextPath}/menu/",
            type: "post",
            data: {},
            success: function (resp) {
       			/*성공시 코드*/     	
            },
            error: function (err) {
            	/*실패시 코드*/     	
            }
        });
});
</script>

하지만, 아래처럼 resources 폴더 안에 js 파일들만 따로 모아둔다면 얘기가 달라진다.

spring 프로젝트 안의 resources 파일

EL 태그는 jsp 안에서 놀기 때문에 resources 안의 js폴더에 들어가면  힘을 잃고 그저 문자열이 되어버린다.

그러면 어떻게 해야할까!!

답은 생각보다 간단한데 ,

불러온 script는 서로 공유되기 때문에 아래와 같이 header.jsp에서 전역 변수를 만들어 EL태그를 넣어주면 

context라는 변수가 아래의 navigator.js에도 적용이 되어서 성공적으로 EL태그의 값을 받아줄 수 있다.