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<Integer> userIds = asList(1,2,3,4);
model.addAttribute("userIds", userIds);
return "index";
}
}
Thymeleaf 템플릿의 이름은 index.html 입니다. 다음 세 섹션에서는 사용자가 데이터를 컨트롤러에 전달할 수 있도록 다른 HTML 양식 요소를 사용합니다.
2.1. 입력 요소
먼저 텍스트 입력 필드와 양식을 제출하는 버튼이있는 간단한 양식을 만들어 보겠습니다.
<form th:action="@{/}">
<input type="text" th:name="participant"/>
<input type="submit"/>
</form>
th : name =”participant” 속성 은 입력 필드의 값을 컨트롤러 의 매개 변수 참가자 에 바인딩합니다 . 이 작업을 수행하려면 @RequestParam (value = "participant")로 매개 변수에 어노테이션을 추가해야합니다 .
2.2. 요소 선택
HTML 선택 요소의 경우도 마찬가지입니다.
<form th:action="@{/}">
<input type="text" th:name="participant"/>
<select th:name="country">
<option value="de">Germany</option>
<option value="nl">Netherlands</option>
<option value="pl">Poland</option>
<option value="lv">Latvia</option>
</select>
</form>
선택한 옵션의 값은 @RequestParam (value = "country") 어노테이션이 달린 country 매개 변수에 바인딩됩니다 .
2.3. 버튼 요소
th : name을 사용할 수있는 또 다른 요소 는 버튼 요소입니다.
<form th:action="@{/}">
<button type="submit" th:name="action" th:value="in">check-in</button>
<button type="submit" th:name="action" th:value="out">check-out</button>
</form>
첫 번째 또는 두 번째 버튼 양식 제출 가압 여부에 따라, 파라미터의 값이 동작은 어느 것 에 체크인 또는 체크 아웃 .
3. 하이퍼 링크의 매개 변수
요청 매개 변수를 컨트롤러에 전달하는 또 다른 방법은 하이퍼 링크를 이용하는 것입니다.
<a th:href="@{/index}">
그리고 괄호 안에 매개 변수를 추가 할 수 있습니다.
<a th:href="@{/index(param1='value1',param2='value2')}">
Thymeleaf는 위의 내용을 다음과 같이 평가합니다.
<a href="/index?param1=value1¶m2=value2">
Thymeleaf 표현식을 사용하여 하이퍼 링크를 생성하는 것은 변수를 기반으로 매개 변수 값을 할당하려는 경우 특히 유용합니다. 예를 들어 각 사용자 ID에 대한 하이퍼 링크를 생성 해 보겠습니다.
<th:block th:each="userId: ${userIds}">
<a th:href="@{/(id=${userId})}"> User [[${userId}]]</a> <br/>
</th:block>
사용자 ID List을 속성으로 템플릿에 전달할 수 있습니다.
List<Integer> userIds = asList(1,2,3);
model.addAttribute("userIds", userIds);
결과 HTML은 다음과 같습니다.
<a th:href="/?id=1"> User 1</a> <br/>
<a th:href="/?id=2"> User 2</a> <br/>
<a th:href="/?id=3"> User 3</a> <br/>
파라미터 ID 하이퍼 링크에서이 파라미터에 바인딩 ID 어노테이션, @RequestParam (값 = "ID") .
4. 요약
이 짧은 기사에서 Thymeleaf와 함께 Spring 요청 매개 변수를 사용하는 방법을 살펴 보았습니다.
먼저 요청 매개 변수를 받아들이는 간단한 컨트롤러를 만들었습니다. 둘째, Thymeleaf를 사용하여 컨트롤러를 호출 할 수있는 HTML 페이지를 생성하는 방법을 살펴 보았습니다.
이 기사의 모든 예제에 대한 전체 소스 코드는 GitHub에서 찾을 수 있습니다.
- https://docs.spring.io/spring-framework/docs/current/reference/html
- https://www.baeldung.com/spring-thymeleaf-request-parameters
'Java' 카테고리의 다른 글
Thymeleaf에서 열거 형 작업 (0) | 2021.04.06 |
---|---|
Spring Boot에서 Thymeleaf 템플릿 디렉토리 변경 (0) | 2021.04.06 |
Thymeleaf는 유틸리티 개체를 나열합니다. (0) | 2021.04.05 |
Thymeleaf를 사용한 스프링 경로 변수 (0) | 2021.04.05 |
Thymeleaf에서 배열 작업 (1) | 2021.04.05 |