[Spring] Thymeleaf

박이레·2023년 7월 25일
0

Spring

목록 보기
7/12

'스프링'은 '스프링'을 뜻하지 않습니다. 대개 '스프링 부트'를 뜻합니다. 스프링 부트는 스프링에서 파생된 서브 프로젝트로 시작했는데 이제 완전한 메인이 되었습니다.

스프링과 스프링 부트는 매우 유사합니다. 기존 코드나 개념은 그대로 유지되었고, Auto Configuration(자동 설정), 사용하는 view 기술이 변화했을 뿐입니다.

JSP는 스프링에서 사용하는 view 기술입니다. Thymeleaf는 스프링 부트에서 사용하는 view 기술입니다. Thymeleaf는 '템플릿'이기 때문에 JSP처럼 데이터를 직접 생성하지 않습니다. 만들어진 결과에 데이터를 끼워서 보여줍니다. 또한 HTML을 기반으로 구성하기 때문에 좀 더 HTML에 가까운 방식으로 작성됩니다.


Thymeleaf 만들기

Thymeleaf는 html과 유사합니다. 확장자도 .html입니다.

① .html 파일 만들기
② namespace에 thymeleaf 추가하기

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"></html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
Hello World!
</body>
</html>

Thymeleaf 문법

데이터 출력

Thymeleaf는 Model로 전달된 데이터를 출력할 수 있습니다. 만약 아래와 같은 Controller가 있다면, Model 객체에는 "msg"를 key로 하고 "Hello World"를 value로 갖는 데이터가 저장됩니다.

@GetMapping("/hello")
    public void hello(Model model) {
        model.addAttribute("msg", "Hello World");
    }

이를 Thymeleaf에서 출력하기 위해서는 두 가지 방법이 있습니다.

① th:

<p th:text="${msg}"></p>

② [[인라인]]

<p>[[${msg}]]</p>

반복문

반복문 처리는 두 가지 방법이 있습니다. 두 가지 모두 결과는 동일합니다.

① th:each

<ul>
  <li th:each="str: ${list}" th:text="${str}"></li>
</ul>

② <th:block>

<ul>
  <th:block th:each="str: ${list}">
    <li>[[${str}]]</li>
  </th:block>
</ul
profile
혜화동 사는 Architect

0개의 댓글