[Thymeleaf] URL Link
Updated:
1. 개요
Thymeleaf는 @{...}
를 통해 URL 링크를 사용할 수 있다. 이번에는 URL 링크를 사용하는 방법에 대해 알아보도록 하자.
2. 개발 환경
-
Java 11
-
Spring Boot 2.5.5
3. 단순 URL
단순히 URL을 입력받기 위해서는 @{...}
를 사용하면 된다.
ex) /simple-url : @{/simple-url}
3-1. 예제 코드
[User.java]
1
2
3
4
5
6
7
@Data
@AllArgsConstructor
public class User {
private Long id;
private String name;
}
[DemoController.java]
1
2
3
4
5
6
7
8
9
@Controller
public class DemoController {
@GetMapping("/url")
public String url(Model model) {
model.addAttribute(new User(1L, "Aiden"));
return "url";
}
}
[url.html]
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a th:href="@{/simple-url}">링크</a>
</body>
</html>
3-2. 실행 결과
3-2-1. 페이지 접속 시
3-2-2. 링크 클릭 시
4. PathVariable
PathVariable을 사용하려면, 중괄호를 사용하여 변수처럼 넘겨주면 된다.
ex) /simple-url/1 : @{/simple-url/{id}(id=${user.id})}
4-1. 예제 코드
[User.java]
1
2
3
4
5
6
7
@Data
@AllArgsConstructor
public class User {
private Long id;
private String name;
}
[DemoController.java]
1
2
3
4
5
6
7
8
9
@Controller
public class DemoController {
@GetMapping("/url")
public String url(Model model) {
model.addAttribute(new User(1L, "Aiden"));
return "url";
}
}
[url.html]
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a th:href="@{/simple-url/{id}(id=${user.id})}">링크</a>
</body>
</html>
4-2. 실행 결과
4-2-1. 페이지 접속 시
4-2-2. 링크 클릭 시
5. QueryParam
QueryParam을 사용하려면, 중괄호를 사용하지 않고 변수처럼 넘겨주면 자동으로 QueryParam으로 처리된다.
ex) /simple-uri?id=1 : @{/simple-url(id=${user.id})}
5-1. 예제 코드
[User.java]
1
2
3
4
5
6
7
@Data
@AllArgsConstructor
public class User {
private Long id;
private String name;
}
[DemoController.java]
1
2
3
4
5
6
7
8
9
@Controller
public class DemoController {
@GetMapping("/url")
public String url(Model model) {
model.addAttribute(new User(1L, "Aiden"));
return "url";
}
}
[url.html]
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a th:href="@{/simple-url(id=${user.id})}">링크</a>
</body>
</html>
Leave a comment