특정 양식을 따르게 하여, 양식간 충돌 등을 방지하는 개념 자체를 템플릿이라고 한다.
Thymeleaf. Html표현을 지향한다.
장점 : HTML5 웹 표준을 준수한다. .THYMELEAF가 아니라 .html이 변경되지 않는다.
template code와 , 문법을 분리할 수도 있다 . (굉장히 신기하다 )
3가지 문법
1. "th" : tag
2. "data-th" attribute (html5는 , 사용자가 정의 atrribute가 있다.
3. decoupled logic
문법을 통해 볼 수있고, 가장 많이 볼 것은 ${...}를 통해 값(variable을 표현한다)
literal - Inline한 표현. ex) the name is ${name}
if문 등도 가능하다 (if) ? (then)
front 단에서 (물론 저장하진 않았다. db를 아직 구현하지 않았기 때문) 내가 생성한 event 객체를 출력하는 방법
th가 event를 읽어 올 수 있었던 비결?
앞서 작성했던 대로, return 할 model의 key가 events였기 때문.
Decoupled Logic
thymelaf의 설정과, 기본적인 프론트 단을 분리해서 사용.
2. 프리 마커
오랫동안 실무에서 사용되었다.
강력한 template 문법을 지원한다. 복잡한 동작도 수행 가능하고, 경량이다.
html base일떈 .ftlh로, xml일땐 .ftlx로 템플릿 파일을 작성한다.
${변수}는 유사하게 사용한다.
<#List events as event> 이후 ${event.eventId}와 같이 사용한다.
3. Mustache
2009년도 부터 릴리즈. 제어 흐름 표현 x
list 태그와 , 람다식만을 사용해서 반복문, 조건문 표현
변수 표현 : Hello{{name}}
즉 실제 사용은
{{#events}}로 묶어서 그 밑에서
{{placeId}} 등을 사용한다.