ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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: _

     

    댓글

Designed by Tistory.