[Spring] @RequestParam 과 @PathVariable

밀크야살빼자·2023년 5월 21일
0
post-thumbnail

@PathVariable

URI 처리할 때 사용한다.

 @GetMapping("items/{itemId}/edit")
    public String updateItemForm(@PathVariable("itemId") Long itemId, Model model){
        Book item = (Book)itemService.findOne(itemId);
        //
    }

❗주의❗
WAS의 경우 URL에 특수문자나 구분기호 ,,. 등을 사용하면 인식을 못하기 때문에 JSON형태로 HTTP BODY에 실어 보내야한다.

@RequestParam

URL 뒤에 붙은 파라미터의 값을 가져올 때 사용 한다.
1. 단일 파라미터 변환

   @PostMapping("/order")
    public String order(@RequestParam("memberId") Long memberId,
                        @RequestParam("itemId") Long itemId,
                        @RequestParam("count") int count){
    }

/order?mamberId="memberId에 담긴 value

  • 하나 이상의 타입 적용 가능
  • 스프링에서 지원하는 변환기에서 지원되는 모든 타입 변환 가능
  • RequestParam은 하나 이상 파라미터에서 사용 가능

❗주의❗
RequestParam에 key 겂이 존재하지 않을 경우 BadRequest로 4** 에러가 발생한다.
이를 해결하기 위해 default 값을 DefaultValue를 이용해서 기본값을 설정해야 한다.

   @PostMapping("/order")
    public String order(@RequestParam("memberId",required=false,defaultValue="") Long memberId,
                        @RequestParam("itemId",required=false,defaultValue="") Long itemId,
                        @RequestParam("count",required=false,defaultValue="") int count){
      // required = false 속성을 통해 키 값이 존재하지 않아도 BadRequest가 발생하지 않는다. 
      // 값이 존재하지 않아도 ""가 디폴트 값으로 들어간다.
    }
profile
기록기록기록기록기록

0개의 댓글