BackEnd/Thymeleaf

타임리프-URL 링크

연향동큰손 2024. 7. 16. 21:26

타임리프에서 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&amp;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