블록

th:block 은 HTML 태그가 아닌 타임리프의 유일한 자체 태그입니다.

BasicController 추가

package hello.thymeleaf.basic;

import lombok.Data;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/basic")
public class BasicController {

		...

	  @GetMapping("/block")
    public String block(Model model) {
        addUsers(model);
        return "basic/block";
    }

		...
}
<!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>
  1. 타임리프의 특성상 HTML 태그안에 속성으로 기능을 정의해서 사용하는데, 위 예처럼 이렇게 사용하기 애매한 경우에 사용하면 됩니다. th:block 은 렌더링시 제거됩니다.

실행

Untitled

th:block 은 렌더링시 제거됩니다.

<aside> ✏️ 당연히 이런 것은 안쓰는게 좋습니다. 하지만 어쩔 수 없이 사용해야할 때가 있습니다. 그럴 때 사용하면 됩니다.

</aside>

Reference