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>

5-2. 실행 결과

5-2-1. 페이지 접속 시

5-2-2. 링크 클릭 시

Updated:

Leave a comment