복붙노트

[SPRING] Spring REST 컨트롤러에서 GET 매개 변수로 매개 변수 매핑

SPRING

Spring REST 컨트롤러에서 GET 매개 변수로 매개 변수 매핑

Spring REST 컨트롤러에 URL의 GET 매개 변수로 Map 매개 변수를 전달할 수 있습니까?

해결법

  1. ==============================

    1.다른 방법이 있습니다 (그러나 간단한 @RequestParam ( 'myMap') Map 은 작동하지 않습니다)

    다른 방법이 있습니다 (그러나 간단한 @RequestParam ( 'myMap') Map 은 작동하지 않습니다)

    (IMHO) 가장 쉬운 해결책은 명령 객체를 사용하는 것입니다. 그러면 URL에서 [key]를 사용하여 맵 키를 지정할 수 있습니다.

    @제어 장치

    @RequestMapping("/demo")
    public class DemoController {
    
        public static class Command{
            private Map<String, String> myMap;
    
            public Map<String, String> getMyMap() {return myMap;}
            public void setMyMap(Map<String, String> myMap) {this.myMap = myMap;}
    
            @Override
            public String toString() {
                return "Command [myMap=" + myMap + "]";
            }
        }
    
        @RequestMapping(method=RequestMethod.GET)
        public ModelAndView helloWorld(Command command) {
            System.out.println(command);
            return null;
        }
    }
    

    스프링 부트 1.2.7에서 테스트 됨

  2. ==============================

    2.주석 뒤에 Map 객체를 추가하는 것만으로 Map의 모든 요청 매개 변수를 바인딩 할 수 있습니다.

    주석 뒤에 Map 객체를 추가하는 것만으로 Map의 모든 요청 매개 변수를 바인딩 할 수 있습니다.

    @RequestMapping("/demo")
    public String example(@RequestParam Map<String, String> map){
        String apple = map.get("AAA");//apple
        String banana = map.get("BBB");//banana
    
        return apple + banana;
    }
    

    의뢰

    출처 - https://reversecoding.net/spring-mvc-requestparam-binding-request-parameters/

  3. from https://stackoverflow.com/questions/33581329/map-parameter-as-get-param-in-spring-rest-controller by cc-by-sa and MIT license