Spring + JSP로 개발을 하다보면 Spring의 ModelAndView 에서 전달 받은 Attribute와 JSP 변수를


자바스크립트에서 사용해야 되는 경우가 있습니다.


이 경우 손쉽게 자바스크립트에서 JSP 변수와 Spring의 ModelAndView 에서 전달받은 Attribute를 사용할 수 있습니다.



사용 방법은


첫번째- 자바스크립트에서 Spring ModelAndView의 Attribute를 사용하는 방법


var text = '${helloText}';


or


var test = "${helloText}";

(여기서 helloText는 Spring의 ModelAndView 에서 전달해준 Attribute 키 값 입니다.)


로 사용할 수 있습니다.



두번째 - 자바스크립트에서 JSP 변수 사용 방법


우선 JSP에서 변수를 이와 같이 선언합니다.


<% String helloText="Hello~!"; %>


그 후 자바스크립트에서


var text ="<%=helloText%>"; 


이렇게 해서 사용할 수 있습니다. 



이렇게 사용할 수 있는 이유는 JSP 실행 순서가 


Java => JSTL => HTML => javascript 이기 때문입니다.


그래서 자바스크립트에서 JSP 혹은 Spring의 ModelAndView 변수를 사용할 수 있지만 


반대로는 어렵습니다.




하지만


만약에 JSP 변수 혹은 Spring의 ModelAndView 변수 안에 


싱글 쿼테이션(작은따옴표 ') 혹은 더블 쿼테이션(큰 따옴표 ")이


있을 경우 예외 적인 상황이 발생 됩니다.


변수안에 싱글 쿼테이션이 있을 경우 자바스크립트에서 


var text = '${helloText}'; 이렇게 선언했을 경우 helloText안에 싱글 쿼테이션이 존재할 경우(ex helloText 값은 hello 'Text)


text의 값은 text = 'hello' Text'; 가 되는데 이렇게 될 경우 브라우저에서 


Uncaught SyntaxError: Invalid or unexpected token


오류가 발생합니다.


 더블 쿼테이션의 경우 자바스크립트 변수 text를 var text = "${helloText}"; 로 선언하고 


helloText안에 더블 쿼테이션이 


있다면 위와 같은 오류가 발생하니 주의해 주시기 바랍니다.




마지막으로


개인적으로는 JSP나 JSTL을 사용하는 것보다 Front, Server 단을 나눠서 개발하는것이 더 추천합니다. 

+ Recent posts