타임리프는 기본적으로 HTML 태그의 속성에 기능을 정의해서 사용한다.
- 간단한 표현:
- 변수 표현식: ${...}
- 선택 변수 표현식: *{...}
- 메시지 표현식: #{...}
- 링크 URL 표현식: @{...}
- 조각 표현식: ~{...}
- 링크 URL 표현식: @{...}
- @{/hello} : /hello
- @{/hello (param1= ${param1}, param2=${param2} ) } : /hello?param1=data1¶m2=data2
- @{/hello/{param1}/{param2} (param1=${param1}, param2=${param2} ) } : /hello/data1/data2
- @{/hello/{param1} (param1=${param1}, param2=${param2} ) } : /hello/data1?param2=data2
- @{hello} : hello -> 상대 경로를 사용하는 방식으로 해당 파일의 폴더를 기준으로 확인한다.
- 리터럴
- 텍스트, 숫자, 불린, 널, 리터럴 토큰
- 문자 리터럴은 항상 (') 작은따옴표를 사용해야 한다.
- 작은따옴표 대신에 || 두 개를 사용할 수 있다.
- | [원하는 리터럴 작성] | 형태로 사용할 수 있다.
- 연산
- 문자 연산
- 문자 합치기: +
- 리터럴 대체: |The name is ${name}|
- Binary operators: +, -, *, /, %
- Minus sign (unary operator): -
- 비교 연산
- gt : >
- lt : <
- ge : >=
- le : <=
- not : !
- eq : ==
- neq, ne : !=
- 불린 연산
- Binary operators: and, or
- Boolean negation (unary operator): !, not
- 조건 연산
- If-then: (if) ? (then)
- If-then-else: (if) ? (then) : (else)
- Default: (value) ?: (defaultvalue)
- 문자 연산
- 특별한 토큰
- No-Operation: _
- HTML 내용을 그대로 출력된다.
- No-Operation: _
- 텍스트
- th:text= ${...}
- 객체
- ${#request}, ${#response}, ${#session}, ${#servletContext}, ${#locale}
- HTTP 요청 파라미터 접근 : ${param.paramData}
- HTTP 세션 접근 : ${session.sessionData}
- 스프링 빈 접근 : ${@bean.Object(data)}
- 유틸리티 객체와 날짜
- #message : 메시지, 국제화 처리
- #uris : URI 이스케이프 지원
- #dates : java.util.Date 서식 지원
- #calendars : java.util.Calendar 서식 지원
- #temporals : 자바8 날짜 서식 지원
- #numbers : 숫자 서식 지원
- #strings : 문자 관련 편의 기능
- #objects : 객체 관련 기능 제공
- #bools : boolean 관련 기능 제공
- #arrays : 배열 관련 기능 제공
- #lists , #sets , #maps : 컬렉션 관련 기능 제공
- #ids : 아이디 처리 관련 기능 제공
- th:each = " [변수명] : ${컬랙션} "
- 이해를 돕자면 배열 for문을 생각해보자.
- index : 0부터 시작하는 값
- count : 1부터 시작하는 값
- size : 전체 사이즈
- even, odd : 홀, 짝(bool)
- first, last : 처음, 마지막(bool)
- current : 현재 객체
- 주석
- HTML : <!-- -->
- 타임리프 : <!--/* */--> - 랜더링 시 주석 부분을 제거한다.
- 타임리프 프로토타입 : <!--/*/ /*/--> - HTML 파일을 그대로 열면 주석 처리, 랜더링하면 보인다.
- 탬플릿 조각(th:fragment)
- 웹 페이지의 공통 영역을 함께 사용하기 위한 방법
- 다른 곳에 포함되는 코드 조각이다.
- 부분 포함 insert : th:insert= "~{위치 :: 클래스 조각}"
- 부분 포함 replace : th:replace="~{위치 :: 클래스 조각}"
- 부분 포함 단순 표현식: th:replace="위치 :: 클래스 조각"
- 파라미터 사용 : th:replace="~{위치 :: 클래스 조각(파라미터) }"
- 편리한 폼 관리를 위한 추가 속성
- th:object : 폼 데이터를 넣어서 사용한다.
- th:object="*{ [변수명] }"
- th:field : html 태그의 id, name, value 속성을 자동으로 처리해준다.
- th:field에서 지정한 변수명과 동일하다.
- th:errors : 해당 필드에 오류가 있는 경우에 태그를 출력한다. th:if의 편의 버전이다.
- th:errorclass : th:field에서 지정한 필드에 오류가 있으면 class 정보를 추가한다.
- th:object : 폼 데이터를 넣어서 사용한다.
최근댓글