- 타임리프에서 많이 쓰는 문법들
1. 변수 표현식
${...}을 사용하여 변수 값을 출력한다. 예를 들어, ${user.name}은 user 객체의 name 속성을 출력한다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>변수 표현식 예제</title>
</head>
<body>
<p>안녕하세요, <span th:text="${user.name}"></span>님!</p>
</body>
</html>
2. 반복문 (Iteration)
'th:each'를 사용하여 리스트나 배열과 같은 컬렉션을 순회한다. 예를 들어, <li th:each="item : ${items}" th:text="${item}"></li>는 items 리스트의 각 요소를 순회하여 리스트 아이템을 생성한다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>반복문 예제</title>
</head>
<body>
<ul>
<li th:each="item : ${items}" th:text="${item}"></li>
</ul>
</body>
</html>
3. 조건문 (Conditional)
'th:if', 'th:unless', 'th:switch', 'th:case' 등을 사용하여 조건부로 HTML 요소를 렌더링한다. 예를 들어, <div th:if="${user.isAdmin()}">관리자</div>는 user.isAdmin()이 true일 때에만 해당 <div>를 렌더링다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>조건문 예제</title>
</head>
<body>
<div th:if="${user.isAdmin()}">관리자</div>
</body>
</html>
4. 속성 바인딩 (Attribute Binding)
타임리프에서는 HTML 요소의 속성에도 표현식을 바인딩할 수 있다. 예를 들어, <a th:href="@{/profile/{userId}(userId=${user.id})}">프로필</a>와 같이 링크의 href 속성에 동적으로 생성된 URL을 설정할 수 있다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>속성 바인딩 예제</title>
</head>
<body>
<a th:href="@{/profile/{userId}(userId=${user.id})}">프로필</a>
</body>
</html>