Thymeleaf를 사용한 스프링 경로 변수

1. 소개

이 짧은 자습서에서는 Thymeleaf를 사용하여 Spring 경로 변수를 사용하여 URL을 생성하는 방법을 배웁니다.

URL의 일부로 값을 전달하고자 할 때 경로 변수를 사용합니다. Spring 컨트롤러에서는 @PathVariable 주석을 사용하여 이러한 값에 액세스합니다 .

2. 경로 변수 사용

먼저 간단한 Item 클래스를 만들어 예제를 설정하겠습니다 .

public class Item { private int id; private String name; // Constructor and standard getters and setters }

이제 컨트롤러를 만들어 보겠습니다.

@Controller public class PathVariablesController { @GetMapping("/pathvars") public String start(Model model) { List items = new ArrayList(); items.add(new Item(1, "First Item")); items.add(new Item(2, "Second Item")); model.addAttribute("items", items); return "pathvariables/index"; } @GetMapping("/pathvars/single/{id}") public String singlePathVariable(@PathVariable("id") int id, Model model) { if (id == 1) { model.addAttribute("item", new Item(1, "First Item")); } else { model.addAttribute("item", new Item(2, "Second Item")); } return "pathvariables/view"; } }

우리에 index.html을 템플릿, 우리의 항목을 통해의 루프를하자 호출 링크를 만들 singlePathVariable 방법 :

방금 만든 코드는 다음과 같은 URL을 만듭니다.

//localhost:8080/pathvars/single/1

이것은 URL에서 표현식을 사용하기위한 표준 Thymeleaf 구문입니다.

연결을 사용하여 동일한 결과를 얻을 수도 있습니다.

3. 다중 경로 변수 사용

이제 Thymeleaf에서 경로 변수 URL을 생성하는 기본 사항을 다루었으므로 다중 사용을 빠르게 다룹니다.

먼저 Detail 클래스를 만들고 Item 클래스를 수정 하여 목록을 만들 것입니다.

public class Detail { private int id; private String description; // constructor and standard getters and setters }

다음 으로 ItemDetail 목록을 추가해 보겠습니다 .

private List details;

이제 여러 @PathVariable 주석을 사용하여 메서드를 추가하도록 컨트롤러를 업데이트하겠습니다 .

@GetMapping("/pathvars/item/{itemId}/detail/{dtlId}") public String multiplePathVariable(@PathVariable("itemId") int itemId, @PathVariable("dtlId") int dtlId, Model model) { for (Item item : items) { if (item.getId() == itemId) { model.addAttribute("item", item); for (Detail detail : item.getDetails()) { if (detail.getId() == dtlId) { model.addAttribute("detail", detail); } } } } return "pathvariables/view"; }

마지막으로 index.html 템플릿을 수정 하여 각 세부 레코드에 대한 URL을 생성 해 보겠습니다.


    

4. 결론

이 빠른 자습서에서는 Thymeleaf를 사용하여 경로 변수가있는 URL을 만드는 방법을 배웠습니다. 우리는 하나만있는 간단한 URL을 만드는 것으로 시작했습니다. 나중에 여러 경로 변수를 사용하도록 예제를 확장했습니다.

예제 코드는 GitHub에서 사용할 수 있습니다.