블록 태그
타임리프는 자체적으로 <th:block>
태그를 제공한다. 이 역시, 예시 코드로 간단히 알아보자.
예시 코드
컨트롤러
@Controller
@RequestMapping("/basic")
public class BasicController {
@GetMapping("/block")
public String block(Model model) {
addUsers(model);
return "basic/block";
}
private void addUsers(Model model) {
List<User> list = new ArrayList<>();
list.add(new User("userA", 10));
list.add(new User("userB", 20));
list.add(new User("userC", 30));
model.addAttribute("users", list);
}
}
타임리프
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<th:block th:each="user : ${users}">
<div>
사용자 이름1 <span th:text="${user.username}"></span>
사용자 나이1 <span th:text="${user.age}"></span>
</div>
<div>
요약 <span th:text="${user.username} + ' / ' + ${user.age}"></span>
</div>
</th:block>
</body>
</html>
결과
상세 설명
블록 태그
- 타임리프 특성상 HTML 태그안에 속성으로 기능을 정의하여 사용하는데, 위 예시처럼 사용하기 애매한 경우에 사용한다.
<th:block th:each="user : ${users}">
th:each
를 사용하기 위해,th:block
을 활용하였다.<th:block>
내부에 작성된 태그들을 반복시키고자 하지만, 내부 태그들을 묶을 적당한 방법을 HTML에서 제공받을 수 없으므로, 자체적인<th:block>
태그를 사용한다.
- 본 게시글은 김영한님의 강의를 토대로 정리한 글입니다.
- 더 자세한 내용을 알고 싶으신 분들이 계신다면, 해당 강의를 수강하시는 것을 추천드립니다.