기본적으로 서버가 작동할 때
JAVA > JSTL > HTML > Javascript 순서로 동작한다.
웹 개발을 하다보면 서버에서 넘어온 값을 view에 뿌려줄 때 Javascript와 jstl을 혼용해야 할 때가 많다.
<잘못 사용한 방법>
<c:forEach items="$("#list").val()" var="item1">
list1.push("${item1.name}");
list1.push("${item1.city}");
list1.push("${item1.age}");
</c:forEach>
jquery로 가져온 값을 jstl로 반복문을 돌리려는 건 실행순서상 에러가 발생한다.
<올바르게 사용한 방법>
var list = '<c:out value="${list}"/>';
다만 스크립트가 로드되기 전부터 존재하는 el값은 스크립트에서 조작이 가능하다.
간단하게 생각하면
- JSTL에선 Javascript값을 받을 수 없다
- Javascript에선 JSTL값을 받을 수 있다
** 추가 **
다음과 같은 방법으로 직접적으로 변수를 쓸 수 없다.
var list = new Array();
list = "${TestList}";
alert( list[0].name );
쓰려면 다음과 같이 해야한다.
var list = new Array();
<c:foreach items="${TestList}" var="item">
list.push("${item.name}");
</c:foreach>
'백엔드 > Spring' 카테고리의 다른 글
JPA란? (0) | 2020.06.08 |
---|---|
Ajax - @RequestBody @ResponseBody에 대해.. (0) | 2019.12.16 |
파일 업로드 폴더 경로를 프로젝트 폴더 외부에 두기 (0) | 2019.10.30 |
spring security 설정 및 요약 정리 (0) | 2019.02.13 |
jstl 사용할 때 tag가 jsp 화면에 그대로 출력될 경우, escapeXml (0) | 2019.01.30 |