머스테치는 템플릿 엔진 (http://mustache.github.io/)
자바, 루비, 자바스크립트, 파이썬, PHP, 펄, GO, ASP등 현존하는 대부분 언어를 지원
<템플린 엔진의 종류와 단점>
jsp, velocity : 스프링부트에서 권장하지 않음
Freemarker : 너무 과하게 많은 기능, 숙련도가 낮아 Freemarker안에 비지니스 로직이 추가 될 확률이 높음
Thymeleaf
스프링에서 적극적으로 밀고 있지만 문법이 어려움
HTML 태그에 속성으로 템플릿 기능을 사용하는 방식으로 배우기 어려움
<머스테치의 장점>
문법이 다른 템플릿 엔진보다 심플
로직 코드를 사용할 수 없어서 View의 역할과 서버의 역할을 명확하게 분리
Mustache.js와 Mustache.java 2가지가 다 있어서, 하나의 문법으로 클라이언트/서버 템플릿 모두 사용 가능
인텔리제이 커뮤니티버전에서도 플러그인을 사용할 수 있음(jsp, Thymeleaf는 얼티메이트버전에서만 공식지원)
<머스테치 세팅>
Marketplace에서 mustache 검색 후 Install
build.gradle에 의존성 등록 (dependencies {} 안에)
compile('org.springframework.boot:spring-boot-starter-mustache')
<머스테치 사용>
기본적인 파일 위치는 src/main/resources/templates
확장자는 .mustache
<머스테치 문법>
{{>layout/header}}
<h1>spring Boot WebServcie ver.2</h1>
{{>layout/footer}}
{{>layout/header}}
현재 머스테치 파일을 기준으로 다른 파일을 가져옴
include라고 생각하면 됨
<tbody id="tbody">
{{#posts}}
<tr>
<td>{{id}}</td>
<td>{{title}}</td>
</tr>
{{/posts}}
</tbody>
{{#posts}}
posts 라는 List를 순회 (loof)
{{id}}
List에서 뽑아낸 객체의 필드
{{post.id}}
객체의 필드 접근
'DEV > thymeleaf,Template' 카테고리의 다른 글
[html] 웹 경로 표기법 (path) : ../ ./ (0) | 2020.06.18 |
---|---|
[thymeleaf] th:style, th:styleappend (0) | 2020.06.03 |
[thymeleaf] 타임리프 세션 값 조회 (0) | 2020.05.28 |
[Thymeleaf] 타임리프 기본 문법 (0) | 2020.05.18 |
ide(이클립스 등) jsp파일 깨짐 현상 해결 (0) | 2020.04.06 |