다음은 웹 요청 URL의 어느 위치에나 포함될 수 있는 매트릭스 변수를 MultiValueMap 객체에 저장하여 처리하는 예입니다.
사용자의 웹 요청 URL이 http://.../home/exam06/ISBN1234;publisher=이지톡;name=스프링/category/IT전문서;publisher=길벗;author=송미영이면 요청 처리 메서드 requestMethod()에 첫 번째 매개변수인 matrixVars는 {publisher=[이지톡, 길벗], name=[스프링], author=[송미영]}이 되고, 두 번째 매개변수인 matrixVars2는 {publisher=[길벗], author=[송미영]}이 됩니다.
@MatrixVariable에 Map 사용
package com.springmvc.chap06;
...
import org.springframework.util.MultiValueMap;
...
@Controller
@RequestMapping("/home")
public class Example06Controller {
@GetMapping("/exam06/{bookId}/category/{category}")
public String requestMethod (
@MatrixVariable MultiValueMap<String, String> matrixVars,
@MatrixVariable(pathVar="category") MultiValueMap<String, String> matrixVars2,
Model model) {
System.out.println(matrixVars);
System.out.println(matrixVars2);
model.addAttribute("data", matrixVars + "<br>" + matrixVars2);
return "webpage06";
}
}
▲ 그림 6-10 실행 결과