Thymleaf - 문법 및 표현방법 정리 (업데이트...)
타임리프는 흔히 View Template(뷰 템플릿)이라고 부른다. 여러 템플릿 엔진들이 있지만 타임리프는 th:xx 형식으로 기존 html태그의 마크업 구조를 흐트러트리지 않고 랜더링이 가능하다는 장점이 있다. 이외에 타임리프에 특징을 정리한다.
타임리프 특징
1 .서버 사이드 HTML 렌더링 (SSR)
타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다.
2. 네츄럴 템플릿
타임리프는 순수 HTML을 최대한 유지하는 특징이 있다.
타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다.
JSP를 포함한 다른 뷰 템플릿들은 해당 파일을 열면, 예를 들어서 JSP 파일 자체를 그대로 웹 브라우저에서 열어보면 JSP 소스코드와 HTML이 뒤죽박죽 섞여서 웹 브라우저에서 정상적인 HTML 결과를 확인할 수 없다. 오직 서버를 통해서 JSP가 렌더링 되고 HTML 응답 결과를 받아야 화면을 확인할 수 있다.반면에 타임리프로 작성된 파일은 해당 파일을 그대로 웹 브라우저에서 열어도 정상적인 HTML 결과를 확인할 수 있다. 물론 이 경우 동적으로 결과가 렌더링 되지는 않는다. 하지만 HTML 마크업 결과가 어떻게 되는지 파일만 열어도 바로 확인할 수 있다.
이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿(natural templates)이라 한다.
3. 스프링 통합 지원
타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.
(스프링부트에서는 타임리프 사용을 권장한다고 한다.)
사용방법
html 상단에 <html xmlns:th="http://www.thymeleaf.org"> 를 선언 후 사용하면 된다. (th는 타임리프에 네임스페이스인데 다른걸로 써도 무방하나 보통은 th로 선언하여 사용한다.)
아래에 정리할 타임리프 템플릿 문법과 표현 방법은 계속 업데이트 될 예정..
• 간단한 표현:
◦ 변수 표현식: ${...}
◦ 선택 변수 표현식: *{...}
◦ 메시지 표현식: #{...}
◦ 링크 URL 표현식: @{...}
◦ 조각 표현식: ~{...}
• 리터럴
◦ 텍스트: 'one text', 'Another one!',…
◦ 숫자: 0, 34, 3.0, 12.3,…
◦ 불린: true, false
◦ 널: null
◦ 리터럴 토큰: one, sometext, main,…
• 문자 연산:
◦ 문자 합치기: +
◦ 리터럴 대체: |The name is ${name}|
• 산술 연산:
◦ Binary operators: +, -, *, /, %
◦ Minus sign (unary operator): -• 불린 연산:
◦ Binary operators: and, or
◦ Boolean negation (unary operator): !, not
• 비교와 동등:
◦ 비교: >, <, >=, <= (gt, lt, ge, le)
◦ 동등 연산: ==, != (eq, ne)
• 조건 연산:
◦ If-then: (if) ? (then)
◦ If-then-else: (if) ? (then) : (else)
◦ Default: (value) ?: (defaultvalue)
• 특별한 토큰:
◦ No-Operation: _
'개발지식' 카테고리의 다른 글
Slack webHooks를 이용하여 알람 메시지 받기 (0) | 2021.09.13 |
---|---|
Base64와 base64 이미지 데이터 인코딩하여 사용하기 (0) | 2021.09.07 |
MAC - STS lombok 설치 및 경로 설정 (0) | 2021.04.16 |
Blog - Dark Mode 만들기 (0) | 2021.04.09 |
Framework & Library & API (0) | 2021.04.04 |
댓글