[Spring] @RequestParam

null·2023년 3월 16일
0

Spring

목록 보기
1/7

(@RequestParam("파라미터 이름") 자료형 변수명)

  • HTTP 요청 파라미터를 메서드의 인자로 1:1 맵핑할 때(전달받을 때) 사용하는 어노테이션

  • 주로 URL 끝에 ?key=value 형태로 전달되는 쿼리 파라미터(query parameter)를 추출하는 데 사용

  • GET 방식 이나 POST 방식에서 전송된 데이터를 추출 가능

  • 파라미터 이름과 요청 파라미터 이름이 다를 경우 @RequestParam("요청 파라미터 이름")으로 명시

  • Content-Type이 application/x-www-form-urlencoded 또는 multipart/form-data인 경우에만 사용 가능

	@GetMapping("/boards")
	public String boardList(Model model, @ModelAttribute("cri") Criteria cri,
			@RequestParam(value = "keyword", defaultValue = "") String keyword) {

		List<Board> boardList = boardService.getPageList(cri);

		Pagination pagination = new Pagination(boardService.getCountBoard(), cri);

		// 계산된 페이지 정보 저장
		cri.setPagination(pagination);
		model.addAttribute("boardList", boardList);
		model.addAttribute("pagination", pagination);
		model.addAttribute("keyword", keyword);

		return "board/list";
	}
	}
  • @GetMapping
    - 요청 매개변수가 URL의 쿼리 문자열(query string)에 포함되어 전송
    - http://localhost:8888/board/boards?keyword=안

  • @PostMapping
    - 요청 매개변수가 HTTP 요청 본문(body)에 포함되어 전송

  • (boolean) required : 파라미터의 값의 필수 여부를 나타내는 옵션
    - required=ture : 기본 설정, 파라미터 값이 전달되지 않으면 Exception(Bad Request 404) 발생
    - required=false
    : 파라미터 값이 전달되 않으면 null 전달
    : int형은 null값 허용하지않으므로 참조 타입인 Integer를 사용
    : defaultValue로 속성 지정하여 에러 방지 가능

  • (String) defaultValue : 요청 매개변수가 제공되지 않았거나 값이 비어 있는 경우 폴백으로 사용할 기본 값

  • Content-Type : application/x-www-form-urlencoded
    - HTML Form에서 데이터를 전송하기 위해 사용되는 인코딩 방식 : Key-value 형태
    - @GetMapping : 쿼리 문자열(query string)로 데이터를 받을 수 있다
    - @PostMapping : HTTP 요청 본문에서 데이터를 받을 수 있다

  • Content-Type : multipart/form-data
    - 파일 업로드 등의 다중 데이터를 전송하는 데 사용되는 인코딩 방식
    - 파일을 바이너리로 인코딩한 후 HTTP 요청 본문에 데이터를 담아 POST 요청을 전송
    - @GetMapping
    : 전송 불가
    : Get방식은 URL 쿼리 문자열에서 데이터를 추출하여 바인딩하기 때문
    - @PostMapping
    : @RequestParam 어노테이션을 사용하여 HTTP 요청 본문에서 데이터를 추출하여 바인딩

  • Content-Type : application/json
    - JSON 형식의 데이터(키-값 쌍(key-value))는 key=value 형태로 전달되는 쿼리 파라미터(query parameter)의 형태로 전달되지 않기 때문에 @RequestParam 어노테이션으로 추출할 수 없다

0개의 댓글