Categories: 개발

[Thymeleaf]타임리프 시작하기

패키지 추가하기

먼저 타임리프를 사용하기 위해선 당연히 타임리프 패키지가 필요하다.
프로젝트에서 사용하는 것에 맞게 gradle 이나 maven에 추가해준다.

// gradle
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
// maven
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

기본 구성

이후 application.yml 에 가서 thymeleaf 단어를 살짝 쳐보면 인텔리제이의 경우
prefix가 나오는데 classpath:/templates/ 가 기본 경로라는 것을 알수가 있다.
여기서 경로를 바꾸고 싶다면 변경을 해준다.

보통은 templates 그대로 사용하기때문에 나도 templates 폴더를 만들고
하위에 index.html 을 만들어주었다.

// index.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    Hello World!!!
</body>
</html>

이후 index 파일의 컨트롤러를 만들었습니다.

@Controller
public class MainController {

    @GetMapping("/")
    public String index(){
        return "index";
    }
}

개발의 시작인 hello world 를 작성하고 일반적인 html 파일을 띄어보았습니다.

타임리프 사용하기

이제 이 html에 타임리프를 사용하려면 html 태그에 attribute를 추가해주어야한다.

<html xmlns:th="http://www.thymeleaf.org" >

추가가 완료되면 타임리프 문법들을 사용할 수 있다.
th:text 는 해당 태그에 text 값을 넣어주는 기능을 한다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <span th:text="Thymeleaf+' '+Text">Hello World!!!</span>
</body>
</html>

결과

span 태그 안에는 hello world가 있었지만 th:text 의 텍스트가 들어갑니다.
그리고 중요한점은 ‘Thymeleaf Text’로 안쓰고 +’ ‘+ 한 이유는
띄어쓰기가 안되기 때문에 주의하셔야합니다.

그리고 변수값을 사용할때는 기본적으로 ${변수}를 사용합니다.

@Controller
public class MainController {

    @GetMapping("/")
    public String index(Model model){
        model.addAttribute("indexValue","Hello Word!");
        return "index";
    }
}

indexValue 라는 값을 전달하고

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" >
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <span th:text="Thymeleaf+' '+Text">Hello World!!!</span>
    <span th:text="${indexValue}"></span>
</body>
</html>

th:text에 ${indexValue} 값이 들어가도록 했습니다.

결과

아무것도 없던 span 에 indevValue로 전달했던 hello world 가 추가된걸 볼 수 있습니다.

mana

Recent Posts

[여행] 1박 2일 경주 뚜벅이 여행기

경주시티투어 이번 여행에 앞서 뚜벅이 여행객들에게 추천하는게 바로 경주시티투어 이다. 경주시티투어 사이트로이동 경주시티투어는 여러가지가 있다.1.…

8개월 ago

[공공데이터] 공공 API 사용하기 – 지하철 실시간 도착 정보

열린데이터 광장 공공데이터 사이트로 이동 서울 열린데이터 광장에서는 서울에 관한 여러가지 공공 API 를 제공한다.그…

8개월 ago

[Vue] Props 와 Emit – 부모 함수 사용하기

Props props 는 쉽게 생각해서 부모가 자식에게 주는 데이터이다.먼저 부모에게 물려받을 데이터를 자식 컴포넌트에 정의한다.…

8개월 ago

이자 계산기

이번에는 이자 계산기 사이트를 만들어봤습니다. 이자 계산기 바로가기 vue로 하다보니 금액이나 이자율 같은 input 태그의…

8개월 ago

[SpringBoot+Nginx+vite]유틸 사이트를 만들어봤습니다.feat.핫딜 모음

유틸 사이트로 이동 웹사이트 개설 나의 블로그의 접속자 수는 처참하지만 내가 블로그를 시작하면서생각했던 계획은 내…

9개월 ago

[GitHub] Actions로 서버에 자동배포하기

과정 시작하기에 앞서 과정부터 설명해드리겠습니다.master branch에 push 가 되면 GitHub Actions 에서소스를 build 를 하고…

9개월 ago