Thymeleaf를 사용한 스프링 요청 매개 변수

1. 소개

Spring에서 Thymeleaf를 사용하는 방법 소개 기사에서 사용자 입력을 객체에 바인딩하는 방법을 보았습니다.

우리는 사용 목적 : 일필드 : 일 Thymeleaf 템플릿과의 @ModelAttribute를 자바 객체에 바인딩 데이터에 컨트롤러. 이 기사에서는 Thymeleaf와 함께 Spring 주석 @RequestParam 을 사용하는 방법을 살펴볼 것입니다.

2. 양식의 매개 변수

먼저 4 개의 선택적 요청 매개 변수를 허용하는 간단한 컨트롤러를 생성 해 보겠습니다.

@Controller public class MainController { @RequestMapping("/") public String index( @RequestParam(value = "participant", required = false) String participant, @RequestParam(value = "country", required = false) String country, @RequestParam(value = "action", required = false) String action, @RequestParam(value = "id", required = false) Integer id, Model model ) { model.addAttribute("id", id); List userIds = asList(1,2,3,4); model.addAttribute("userIds", userIds); return "index"; } }

Thymeleaf 템플릿의 이름은 index.html 입니다. 다음 세 섹션에서는 사용자가 컨트롤러에 데이터를 전달할 수 있도록 다른 HTML 양식 요소를 사용합니다.

2.1. 입력 요소

먼저, 텍스트 입력 필드와 양식 제출 버튼이있는 간단한 양식을 만들어 보겠습니다.

th : ​​name =”participant” 속성 은 입력 필드의 값을 컨트롤러 의 매개 변수 참가자 에 바인딩합니다 . 이 작업을 수행하려면 @RequestParam (value = "participant")로 매개 변수에 주석을 달아야 합니다.

2.2. 요소 선택

HTML 선택 요소의 경우도 마찬가지입니다.

   Germany Netherlands Poland Latvia  

선택한 옵션의 값은 @RequestParam (value = "country") 주석이 달린 country 매개 변수에 바인딩됩니다 .

2.3. 버튼 요소

th : ​​name을 사용할 수있는 또 다른 요소 는 버튼 요소입니다.

 check-in check-out 

첫 번째 또는 두 번째 버튼 양식 제출 가압 여부에 따라, 파라미터의 값이 동작은 어느 것 에 체크인 또는 체크 아웃 .

3. 하이퍼 링크의 매개 변수

요청 매개 변수를 컨트롤러에 전달하는 또 다른 방법은 하이퍼 링크를 사용하는 것입니다.

그리고 괄호 안에 매개 변수를 추가 할 수 있습니다.

Thymeleaf는 위의 내용을 다음과 같이 평가합니다.

Thymeleaf 표현식을 사용하여 하이퍼 링크를 생성하는 것은 변수를 기반으로 매개 변수 값을 할당하려는 경우 특히 유용합니다. 예를 들어 각 사용자 ID에 대한 하이퍼 링크를 생성 해 보겠습니다.

  User [[${userId}]]

사용자 ID 목록을 템플릿에 속성으로 전달할 수 있습니다.

List userIds = asList(1,2,3); model.addAttribute("userIds", userIds);

결과 HTML은 다음과 같습니다.

 User 1

User 2

User 3

파라미터 ID 하이퍼 링크에서이 파라미터에 바인딩 ID 주석, @RequestParam (값 = "ID") .

4. 요약

이 짧은 기사에서 Thymeleaf와 함께 Spring 요청 매개 변수를 사용하는 방법을 살펴 보았습니다.

먼저 요청 매개 변수를 받아들이는 간단한 컨트롤러를 만들었습니다. 둘째, Thymeleaf를 사용하여 컨트롤러를 호출 할 수있는 HTML 페이지를 생성하는 방법을 살펴 보았습니다.

이 기사의 모든 예제에 대한 전체 소스 코드는 GitHub에서 찾을 수 있습니다.