저는 jsp에서 loop를 사용하기 위해서
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
다음과 같은 태그를 사용하여 import 시켜주었습니다.
<c:foreach> tag
<c:foreach varStatus="i" begin="0" end="150">
<script>document.write(new Date().getFullYear() - ${i.index});</script>
</c:foreach>
상단의 코드를 사용하여 현재 Date의 년도를 javascript로 받아오고 그 시점부터 이전 150년까지 loop를 돌려서 생년월일 중에 년도를 받아오게 하고자 하였습니다.
하지만 <select> tag의 <option> value로 값을 넣는 과정에서 script가 value형태가 아닌 text형태로 그대로 남아있는 것을 발견하였습니다.
다시말해 JSTL에서 script를 실행하고자 하였지만 jstl에서는 해당 javascript를 그저 text로만 인식하였습니다.
저는 해당 과정이 왜 이렇게 작동하는지 찾아보았고 다음과 같은 결론을 얻을 수 있었습니다.
웹 서버에서 code를 인식하는 우선도가 존재한다.
다음과 같은 우선도가 존재하는 것을 알게 되었고
- java -> jstl -> html -> javascript
javascript로 현재의 date를 받아오고자 하는 시도는 Java file에서 실행이 되어야 손쉽게 적용할 수 있다는 것을 알게 되었습니다.