[중요]자바스크립트영역에서 el , jstl 사용이 가능한이유..

2019. 5. 28. 11:27프로그래밍/JavaScript

참고 : https://okky.kr/article/377148

 

OKKY | 자바스크립트영역에서 el , jstl 사용이 가능한이유..

안녕하세요 신입개발자입니다. 소스분석을 하고있는데 1.자바스크립트 영역에 el태그 var a ${exam} 이런식이나 var b ${exam2} 이런식으로 사용하는데 따옴표가 있고 없고의 차이가 있나요? 2.자바스크립트에서 el이나 jstl을 사용할 수 있는 이유가 무엇인가요? 인터넷에 찾아보니 실행순서가 자바 - jstl - ht

okky.kr

기초적인건데 몰라서 고생할수가 있어서 정리한다.

 

1.자바스크립트 영역에 el태그 var a = '${exam}' 이런식이나 var b = ${exam2} 이런식으로 사용하는데 따옴표가 있고 없고의 차이는 무엇일까.

var a = "hello";

var a = hello;

이렇게 보면 바로 이해될 것이다. 따옴표는 javascript 문자열이므로 만약 el로 불러온 변수 exam에 할당된 값이 문자열임에도 불구하고 따옴표를 붙이지 않으면 출력 자체가 되지 않는다.

이해를 돕기 위해 위의 참고 이미지를 보자.

vzipcode에 할당된 값은 "08376" 이라는 문자열이다. 하지만 var a의 경우 el태그에 따옴표를 붙이지 않아 숫자로 인식되었고 숫자타입은 앞에 0이 올 수 없기 때문에 0이 빠진 8376이란 숫자가 변수 a에 할당되었다.

그리고 변수 b와 c에는 el 태그에 각각 '' 또는 "" 등의 따옴표를 사용해 주었기 때문에 문자열로 인식되어 온전한 5자리 숫자가 출력되었다.

 

 

2.자바스크립트에서 el이나 jstl을 사용할 수 있는 이유는?

el이나 jstl 태그는 서버측 변수 및 태그이다. 따라서 html로 만들어질때는 실제값으로 변경되어 들어가게 된다.

실행순서는 다음과 같다.

순서 : java -> jstl -> html -> javascript

 jstl 까지 서버단에서 처리가 끝난 html 을 클라이언트에서 파싱 후 javascript 를 처리한다.

즉, 서블릿이 jsp를 완성된 html로 만들어서 서버에서 클라이언트로 전송하는 것이므로 클라이언트 언어인 javascript와는 관련이 없게 되는 것이다.

단, jsp외부로 js를 빼면 작동하지 않을 것이다. 서버는 jsp를 처리하지 외부에서 임포트되는 js를 처리하지는 않기 때문이다.