Spring&Springboot/Spring(개인공부용)

[Spring]HTTP 요청 파라미터 - @RequestParam

Legday 2022. 12. 15. 00:28

1. @RequestParam(”key”)

  • 쿼리스트링에 있는 파라미터명을 key로 받아서 저장
@RequestMapping("/request-param-v2")
    public String requestParamV2(
            @RequestParam("username") String memberName,
            @RequestParam("age") int memberAge){

        log.info("username={}, age={}", memberName, memberAge);

        return "ok";
    }
  • 파라미터명과 변수명이 같다면 key 생략 가능
@RequestMapping("/request-param-v3")
    public String requestParamV3(
            @RequestParam String username,
            @RequestParam int age){

        log.info("username={}, age={}", username, age);

        return "ok";
    }

2. @RequestParam - required , defalutValue 속성

  • null 값을 받지 못하게 required 속성을 줄 수 있다.( defalut 값은 true이다)
@RequestMapping("/request-param-required")
    public String requestParamRequired(
            @RequestParam(required = true) String username, //쿼리스트링에서 username은 필수로 입력해야한다.
            @RequestParam(required = false) int age){
        log.info("username={}, age={}", username, age);

        return "ok";
    }
  • 단, 빈값은 허용하게 된다.( null 과 빈값은 엄연히 다르다!! )
  • 빈값이 왔을때 defalut 값을 지정할 수 있다. 이때 쓰는 속성이 defalutValue 이다
@RequestMapping("/request-param-defalut")
    public String requestParamDefalut(
            @RequestParam(defaultValue = "guest") String username, //빈값이 들어올때 기본값을 정해줌.
            @RequestParam(defaultValue = "-1") int age){ // defalutValue 를 쓰면 required 속성을 안써도된다.
        log.info("username={}, age={}", username, age);

        return "ok";
    }

3. Map 을 이용하여 하나로 통일

  • Map 을 이용하여 @RequestParam 을 1번만 쓸 수 있다
  • 단, 2개인 경우만 Map 이고 , 하나의 키값으로 여러개를 받을 경우 MultiValueMap사용가능