타임리프에서 URL을 생성하는 방법에 대해서 알아보자.
<BasicController 추가>
@GetMapping("link")
public String link(Model model){
model.addAttribute("param1","data1");
model.addAttribute("param2","data2");
return "basic/link";
}
<link.html>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>URL 링크</h1>
<ul>
<li><a th:href="@{/hello}">basic url</a></li>
<li><a th:href="@{/hello(param1=${param1}, param2=${param2})}">hello query param</a></li>
<li><a th:href="@{/hello/{param1}/{param2}(param1=${param1}, param2=${param2})}">path variable</a></li>
<li><a th:href="@{/hello/{param1}(param1=${param1}, param2=${param2})}">path
variable + query parameter</a></li>
</ul>
</body>
</html>
실행 후 페이지 소스 보기와 비교해보면 차이점을 확인 할 수 있다.
@{/hello} ===> /hello
@{/hello(param1=${param1}, param2=${param2})} ==> "/hello?param1=data1&param2=data2"
이와같이 ()에 있는 부분은 쿼리 파라미터로 처리된다.
경로변수의 경우 다음과 같이 표시된다.
@{/hello/{param1}/{param2}(param1=${param1}, param2=${param2})} ===> /hello/data1/data2
경로변수 + 쿼리 파라미터
@{/hello/{param1}(param1=${param1}, param2=${param2})} ===> /hello/data1?param2=data2
'BackEnd > Thymeleaf' 카테고리의 다른 글
타임리프-속성값 설정 (0) | 2024.07.19 |
---|---|
타임리프 - 리터럴 (0) | 2024.07.16 |
타임리프-기본객체 (0) | 2024.07.16 |
변수 - SpringEL (2) | 2024.07.15 |
텍스트 - text, utext (0) | 2024.07.15 |