기록과 정리

Thymeleaf Layout 설정 - thymeleaf-layout-dialect ( + 공통 css/js 관리 ) 본문

IT/FrontEnd

Thymeleaf Layout 설정 - thymeleaf-layout-dialect ( + 공통 css/js 관리 )

zepetto 2021. 1. 21. 23:02

타임리프로 레이아웃 설정을 해보자

 

웹은 보통 헤더+내용+푸터 (+사이더) 로 이루어져있다. 

사진으로보면 다음과 같다

Sider 도 추가될 수 있다.

 

Layout을 나누는 방법은 여러가지가 있다. Tiles, Ant-d...

오늘은 Thymeleaf 에서 layout 설정을 해보겠다.

 

 

템플릿 구조

 common/scripts 와 common/styles는 공통 js/css 관리 파일이다. 해당 파일에는 공통으로 사용하는 파일을 적절히 선언할 것.

파일 구조를 만들었다면 라이브러리 의존성 주입을 받아야 한다. 

 

https://github.com/ultraq/thymeleaf-layout-dialect

간단하게 이 페이지를 보면 layout을 구성하겠지만 더 자세한 내용은 위 깃주소를 참조하자.

 

fragments/config 소스는 다음과 같다.

fragments/config.html

<html> tag에 타임리프와 레이아웃을 사용할 수 있도록 선언을 해주고 해당 head 태그에는 configFragment라 선언을 해준다.

head에 관련한 태그 안에는 위에 만들어 놓았던 공통 css, js를 관리하거나 부분적으로 컨텐트에 쓰이는 js,css를 관리하자.

 

 

fragment/header
fragment/footer

헤더와 푸터이다 각 태그안에 적절한 fragment 명의 id값을 명시해준다.

 

 

layout/default.html

해당 html에 선언해두었던 config, header, footer Fragment를 선언한다.

 

views/content.html

실제로 내용이 입력이 되는 content 부분이다. layout:decorator를 통해 layout/default안에 존재하는 header/footer/config fragment를 찾아 화면에 출력이 된다. 

 

아래는 해당 소스를 출력한 화면이다.

출력화면

참고할 controller 소스도 첨부한다.

controller

 

자세한 소스는 아래 링크를 참고 부탁드립니다.

github.com/zepetto7065/study/tree/main/SpringBoot/Layout(%2B%EA%B3%B5%ED%86%B5JS_CSS%EA%B4%80%EB%A6%AC)

 

zepetto7065/study

개인 개발 공부 저장소. Contribute to zepetto7065/study development by creating an account on GitHub.

github.com

 

 

'IT > FrontEnd' 카테고리의 다른 글

Form을 이용한 POST 데이터 전송  (0) 2021.01.20