loose
이로운 개발하기
loose
전체 방문자
오늘
어제
  • 전체 (204)
    • ☕ Java (24)
    • 📘 Effective Java (9)
    • 🍃 Spring (47)
    • 📖 ORM (9)
    • ☸️ Kubernetes (13)
    • 🐧 Linux (5)
    • 🐋 Docker (5)
    • 🛠️ CI & CD (7)
    • 🕸️ Web (6)
    • 🔗 Distributed System (3)
    • 📜 Js (10)
    • 📈 Database (11)
    • 🗂️ Etc (34)
    • 🧑 Chitchat (11)
    • 📒 문학 (9)
    • 👜 개인 공부 창고 (1)

공지사항

반응형

최근 글

최근 댓글

loose

이로운 개발하기

[Thymeleaf] Fragment vs thymeleaf-layout-dialect 차이
🗂️ Etc

[Thymeleaf] Fragment vs thymeleaf-layout-dialect 차이

2022. 6. 18. 23:02
반응형

둘다 공통 Layout 처리를 하기 위해 사용한다.

 

Fragment

 

1. index.html (스프링으로부터 redirect 된 실제 컨텐츠 페이지)

<html>
	<div th:replace="/fragments/header.html :: headerFragment"></div>
	컨텐츠 내용
</html>

2. header.html

<div th:fragment="headerFragment">
	공통 헤더 파일 추가
</div>

 

index.html에 위와 같은 코드를 적으면 header.html의 fragment 값이 headerFragment인 것을 가져오는 코드.

 

thymeleaf-layout-dialect

 

Maven Or Gradle에 thymeleaf-layout-dialect 의존성을 추가해서 사용한다.

 

1. index.html (실제 컨텐츠 페이지)

<html>
	<header th:replace="fragments/header :: headerFragment"></header>
  
	<div layout:fragment="content"></div>

	<footer th:replace="fragments/footer :: footerFragment"></footer>
</html>

2. 스프링으로부터 redirect 된 컨텐츠 페이지

<html>
	<div layout:fragment="content">
		컨텐츠 내용
	</div>
</html>

 

스프링에서 redirect 된 컨텐츠 페이지에 layout:fragment="content"를 적으면 index.html의 layout:fragment="content" 부분에 치환된다.

 

index.html이 실질적인 컨텐츠 페이지이고 스프링으로부터 redirect된 컨텐츠 페이지의 내용을 index.html에 치환시켜 넘기는 방식이다.

 

컨텐츠 페이지에 하나하나 공통처리를 해주지 않아도 공통 처리를 할 수 있기 때문에 기존 JSP + Spring에서 썼던 Tiles 처럼 처리가 가능하다.

 

다만 개인적으로는 Tiles든 thymeleaf-layout-dialect든 이러한 설정 자체가 의존성이 강해져 후에 유지보수 자체가 어려워지는 경우가 좀 많아서 개인 프로젝트에선 Fragment 기능만 쓰려고 한다.

728x90

'🗂️ Etc' 카테고리의 다른 글

개인적으로 사용하는 Eclipse와 Intellij에서 사용하는 디버깅 방식  (0) 2022.06.29
카카오 공유하기 - imageUrl과 serverCallbackArgs 사용법  (0) 2022.06.19
SVN, GIT 장단점  (0) 2022.05.27
Rest Api는 쓰기 어렵다. 근데 Http Api도 어렵다.  (0) 2022.05.22
해시 알고리즘(Hash Algorithm)과 시간 복잡도(Time Complexity)  (0) 2022.05.14
    '🗂️ Etc' 카테고리의 다른 글
    • 개인적으로 사용하는 Eclipse와 Intellij에서 사용하는 디버깅 방식
    • 카카오 공유하기 - imageUrl과 serverCallbackArgs 사용법
    • SVN, GIT 장단점
    • Rest Api는 쓰기 어렵다. 근데 Http Api도 어렵다.
    loose
    loose
    불만하는 사람은 90명, 해결하는 사람은 9명, 리드하는 사람은 1명 음악과 낭만을 좋아합니다.
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바