타임리프는 자바스크립트에서 타임리프를 편리하게 사용할 수 있도록 자바스크립트 인라인 기능을 제공한다.
<script th:inline="javascript">
이 사이에 자바 스크립트 코드를 적어주고, 컨트롤러에서 넘어온 변수는 [[ ${ } ]] 로 감싸준다.
</script>
<!-- 자바스크립트 인라인 사용 전-->
<script>
var username = [[${user.username}]];
var age = [[${user.age}]];
</script>
<!-- 자바스크립트 인라인 사용 전 결과 -->
<script>
var username = userA;
var age = 10;
</script>
<!-- 자바스크립트 인라인 사용 후 -->
<script th:inline="javascript">
var username = [[${user.username}]];
var age = [[${user.age}]];
</script>
<!-- 자바스크립트 인라인 사용 후 결과 -->
<script>
var username = "userA";
var age = 10;
</script>
타임리프는 HTML 파일을 직접 열어도 동작하는 내추럴 템플릿 기능을 제공한다.
주석을 활용해서 이 기능을 사용할 수 있다.
<!-- 자바스크립트 인라인 사용 전 -->
<script>
// 자바스크립트 내추럴 템플릿
var username2 = /*[[${user.username}]]*/ "test username";
</script>
<!-- 자바스크립트 인라인 사용 전 - 결과 -->
<script>
// 자바스크립트 내추럴 템플릿
var username2 = /*userA*/ "test username";
</script>
타임리프의 자바스크립트 인라인 기능을 사용하면 객체를 JSON으로 변환해준다.
<!-- 자바스크립트 인라인 사용 전 -->
<script>
//객체
var user = [[${user}]];
</script>
<!-- 자바스크립트 인라인 사용 전 - 결과 -->
<script>
//객체
var user = BasicController.User(username = userA, age = 10);
</script>
<!-- 자바스크립트 인라인 사용 후 -->
<script th:inline="javascript">
//객체
var user = [[${user}]];
</script>
<!-- 자바스크립트 인라인 사용 후 결과 -->
<script>
//객체
var user = {"username":"userA","age":10};
</script>