-
[Spring Boot] Thymeleaf개발/Spring Boot 2022. 7. 22. 10:40
타임리프란
타임리프는 HTML, XML, JavaScript, CSS, 및 일반 텍스트까지 처리할 수 있는 웹 및 독립 실행형 환경을 위한 최신 서버 측 Java 템플릿 엔진입니다. 타임리프는 처음부터 웹 표준(특히 HTML5)을 염두에 두고 설계 되어 필요한 경우 완전히 검증된 템플릿을 생성할 수 있고 스프링 부트에서도 타임리프 사용을 권장하고 있습니다.
스프링 MVC와의 통합 모듈을 제공하고 Application에서 JSP로 만든 기능들을 대체할 수 있습니다.
즉, JSP 처럼 HTML 태그에 속성을 추가하여 동적으로 값을 처리할 수 있습니다.타임리프 특징
- 서버상에서 동작하지 않아도 HTML 파일의 내용을 바로 확인 할 수 있다.
- 순수 HTML 구조를 유지한다.
Natural Template 네추럴 템플릿
- 순수 HTML을 유지하는 템플릿
- 타임리프로 작성된 파일은 기본 HTML 구조를 유지하기 때문에 파일을 직접 열어도, 서버를 통해 렌더링 하더라도 일관된 HTML 구조를 유지한다.
- JSP를 포함한 다른 템플릿들은 동적으로 렌더링 하기위하여 여러 기능들을 사용하는데 이 과정에서 HTML 구조가 뒤죽박죽 섞이기 때문에 정상적인 HTML 구조를 유지하기가 어렵다.
- 이렇게 순수 HTML을 그대로 유지하며 템플릿을 사용할 수 있는 타임리프의 특징을 네츄럴 팀플릿 이라한다.
스프링 통합 지원
- 타임리프는 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원
- 스프링에서 권장하고 있는 템플릿
- html 파일 상단에 <html xlmns:th="http://www.thymeleaf.org">를 포함시켜주면 적용 가능
타임리프 문법 종류
간단한 표현
- 변수 표현식: ${...}
- 선택 변수 표현식: *{...}
- 메세지 표현식: #{...}
- 링크 URL 표현식: @{...}
- 조각 표현식: ~{...}
리터럴
- 텍스트: 'one text', 'Anothr one!', ...
- 숫자: 0, 34, 3.0, 12.3, ...
- 불린: true, false
- 널: null
- 리터럴 토큰: one, sometext, main, ...
문자 연산
- 문자 합치기: +
- 리터럴 대체: | The name is ${name}|
산술 연산
- Binary operators: +, -, *, /, %
- Minus sign (unary operatior): -
불린 연산
- 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: _