RequestParam, ModelAttribute, RequestBody

RequestParam

  • 하나의 HTTP 요청 파라미터를 받기 위해 사용.
  • 필수 true이기 때문에 반드시 해당 파라미터가 전송 되어야 한다.
  • 필요한 값이 아니라면 required false 설정.
@GetMapping("/example")
public ResponseEntity<List<Sample>> requestParam(
@RequestParam(value="example1", required=false) final String example1,
@RequestParam(value="example2", defaultValue="2") final String example2) {

final List<Sample> sampleList = example1 != null
	? sampleService.getSampleList(example1)
    : sampleService.g etSampleList();
   return ResponseEntity.ok(sampleList);
}

ModelAttribute

  • multipart/form-data 형태의 HTTP Body와 파라미터들을 Setter를 통해 1대1로 객체에 바인딩하기 위해 사용.
  • 매핑 시키는 파라미터의 타입이 객체의 타입과 일치한지 검증.
@PostMapping("/example")
public ResponseEntity<Sample> modelAttribute(@ModelAttribute final Sample sample) {
	return ResponseEntity.ok(sampleService.add(sample));
}

RequestBody

  • 클라이언트가 전송하는 Json형태의 HTTP Body를 Java 객체로 변환 시켜주는 역할.
@PostMapping("/example")
public ResponseEntity<Sample> requestBody(@RequestBody final Sample sample) {
	return ResponseEntity.ok(sampleService.add(sample));
}

@RequestBody, @ModelAttribute, @RequestParam

좋은 웹페이지 즐겨찾기