Note > thymeleaf템플릿에 변수 전달하기 th:with="onevar=${value1},twovar=${value2}By a3040, Published on Invalid Date
<div th:replace="~{::frag}" th:with="onevar=${value1},twovar=${value2}">
<div th:replace="~{::frag (onevar=${value1},twovar=${value2})}">
공통 템플릿 페이징을 만들 경우
list에서는 members 라는 페이징이 들어간 변수를 사용하게 되고, paging 템플릿에서는 page라는 변수를 사용하게 된는 경우가 있습니다.
이렇게 변수명을 변경해서 전달할 경우나 변수추가가 필요한 경우 사용됩니다.
contorller
@GetMapping(value={"/aman/member/list", "/aman/member"})
public String getMembers(HttpServletRequest request, Model model, @RequestParam(defaultValue = "1") int page) {
Page<Member> members = memberService.getAllMembers(page);
model.addAttribute("members", members); //페이징 정보가 들어가 멤버들
return "aman/member/list";
}
타임리프 aman/member/list에서
<body class="container mx-auto">
<div th:replace="~{fragments/header :: header}"></div>
<div th:replace="~{member/list :: list}"></div>
<div th:replace="~{common/paging :: nav(page=${members},twovar=${value2})}"></div>
<div th:replace="~{fragments/footer :: footer}"></div>
</body>
paging 템플릿 에서
<nav th:if="${page.totalPages > 1}">
<info th:text="${#ctx.springRequestContext.requestUri}"></info>
<ul class="pagination">
<li class="page-item" th:classappend="${page.first ? 'disabled' : ''}">
<a class="page-link" th:href="@{${url}(page=1)}">First</a>
</li>
<li class="page-item" th:classappend="${page.first ? 'disabled' : ''}">
<a class="page-link" th:href="@{${url}(page=${page.number - 1})}">Previous</a>
</li>
<li class="page-item" th:each="i : ${#numbers.sequence(1, page.totalPages)}"
th:classappend="${page.number+1 == i ? 'active' : ''}">
<a class="page-link" th:href="@{${url}(page=${i})}" th:text="${i}"></a>
</li>
<li class="page-item" th:classappend="${page.last ? 'disabled' : ''}">
<a class="page-link" th:href="@{${url}(page=${page.number + 1})}">Next</a>
</li>
<li class="page-item" th:classappend="${page.last ? 'disabled' : ''}">
<a class="page-link" th:href="@{${url}(page=${page.totalPages})}">Last</a>
</li>
</ul>
</nav>