URL 링크

타임리프에서 URL을 생성할 때는 @{...} 문법을 사용하면 됩니다.

BasicController 추가

package hello.thymeleaf.basic;

import lombok.Data;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/basic")
public class BasicController {

		...

    @GetMapping("/link")
    public String link(Model model) {
        model.addAttribute("param1", "data1");
        model.addAttribute("param2", "data2");
        return "basic/link";
    }

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

<h1>URL 링크</h1>
<ul>
		<!--...1-->
    <li><a th:href="@{/hello}">basic url</a></li>
		<!--...2-->
    <li><a th:href="@{/hello(param1=${param1}, param2=${param2})}">hello query param</a></li>
		<!--...3-->
    <li><a th:href="@{/hello/{param1}/{param2}(param1=${param1}, param2=${param2})}">path variable</a></li>
		<!--...4-->
    <li><a th:href="@{/hello/{param1}(param1=${param1}, param2=${param2})}">path variable + query parameter</a></li>
</ul>

</body>
</html>
  1. 단순한 URL
  2. 쿼리 파라미터
  3. 경로 변수
  4. 경로 변수 + 쿼리 파라미터

<aside> ❗ 상대경로, 절대경로, 프로토콜 기준을 표현할 수도 있습니다.

참고: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#link-urls

</aside>

실행