[개발] Spring boot

[Spring boot] 실무에서 자주쓰는 타임리프(Thymeleaf) 문법 총정리(안보면 손해)

  • -
반응형

 

Thymeleaf 실무에서 자주 사용하는 문법

1. Thymeleaf 기본 문법

1.1 th:text

텍스트를 출력할 때 사용합니다.

<p th:text="${message}">Default Text</p>

${message}는 컨트롤러에서 전달된 모델의 값으로 대체됩니다.

 

1.2 th:utext

HTML 태그를 포함한 텍스트를 출력하며, HTML을 그대로 렌더링합니다.

<div th:utext="${content}"></div>

 

 

 

 

2. 속성 대체

2.1 th:hrefth:src

링크와 이미지를 동적으로 설정할 때 사용합니다.

<a th:href="@{/home}">Home</a>
<img th:src="@{/images/logo.png}" alt="Logo">

2.2 th:class

CSS 클래스를 동적으로 지정합니다.

<div th:class="${isActive ? 'active' : 'inactive'}">Content</div>

 

 

 

 

 

3. 조건문과 반복문

3.1 th:ifth:unless

조건에 따라 요소를 렌더링할 때 사용합니다.

<p th:if="${user.loggedIn}">Welcome, <span th:text="${user.name}"></span>!</p>
<p th:unless="${user.loggedIn}">Please log in.</p>

3.2 th:each

리스트나 배열을 반복하여 출력합니다.

<ul>
    <li th:each="item : ${items}" th:text="${item}"></li>
</ul>

 

 

 

 

 

 

 

4. 폼 처리

4.1 th:objectth:field

폼 데이터를 바인딩할 때 사용합니다.

<form th:action="@{/submit}" th:object="${user}" method="post">
    <input type="text" th:field="*{name}" placeholder="Name"/>
    <input type="password" th:field="*{password}" placeholder="Password"/>
    <button type="submit">Submit</button>
</form>

 

 

 

 

 

 

5. URL 매핑

5.1 @{} 표현식

URL을 동적으로 생성할 때 사용됩니다.

<a th:href="@{/user/profile(id=${userId})}">Profile</a>

 

 

 

 

 

 

6. 속성 설정 및 조합

6.1 th:attr

여러 속성을 동시에 설정할 때 사용합니다.

<a th:attr="href=@{/home}, title=${title}">Home</a>

 

 

 

 

 

 

7. 문자열 조합 및 연산

7.1 th:text에서 문자열 조합

문자와 변수를 결합하여 표시할 수 있습니다.

<p th:text="'Hello, ' + ${user.name} + '!'">Default</p>

 

 

 

 

 

 

8. 조건 연산자

8.1 ?: 삼항 연산자

조건에 따라 다른 값을 반환할 때 사용됩니다.

<span th:text="${user.age > 18 ? 'Adult' : 'Child'}"></span>

 

 

 

 

 

 

9. 메시지 처리

9.1 th:text#{}

messages.properties 파일에서 메시지를 가져올 때 사용합니다.

<p th:text="#{welcome.message}">Welcome</p>

 

 

 

 

 

10. 내장 객체

Thymeleaf는 th:object, th:field 외에도 #dates, #numbers, #strings 등의 유틸리티 객체를 제공합니다.

<p th:text="${#dates.format(currentDate, 'yyyy-MM-dd')}"></p>
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.