더북(TheBook)

다음은 웹 요청 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 실행 결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.