์๊ฒ๋ ์
1. @RequestParam์ ํตํด์ ๋ฐ์ ์ ์๋ ๋ฐ์ดํฐ
- Query String
- Form ํ์ ๋ฐ์ดํฐ (html form)
- ๋ฉํฐํํธ ๋ฐ์ดํฐ : multipart/form-data ํ์์ ์์ฒญ์์ ํผ ํ๋์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ์ ์์
์ ์ธ๊ฐ์ง๋ฅผ ๋ค ๋ฐ์ ์ ์์ต๋๋ค.
2. @RequestBody๋ ๋ณํ๊ณผ์ , @ModelAttribute์ ๋งตํ๊ณผ์
- @RequestBody
- JSON, XML, Text๋ฑ์ ๋ฐ์ดํฐ๊ฐ ์ ํฉํ HttpMessageConverter์ ํตํด ํ์ฑ๋์ด Java ๊ฐ์ฒด๋ก ๋ณํ ๋ฉ๋๋ค.
- @RequestBody๋ฅผ ์ฌ์ฉํ ๊ฐ์ฒด๋ ๋ฐ์ธ๋ฉ์ ์ํ ์์ฑ์๋, setter๋ฉ์๋๊ฐ ํ์ ์์ต๋๋ค.
- ๋จ, ์ง๋ ฌํ๋ฅผ ์ํด ๊ธฐ๋ณธ ์์ฑ์์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ํ getter๋ setter ์ค 1๊ฐ์ง๋ ์ ์๋์ด์ผ ํฉ๋๋ค.
- @ModelAttribute
- HTTP ํ๋ผ๋ฏธํฐ ๋ฐ์ดํฐ๋ฅผ Java ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ฒ์ด ์๋ ๋งคํ์ ํ๊ฒ ๋ฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ํ ์์ฑ์ ํน์ setter๋ฉ์๋๊ฐ ํ์ํฉ๋๋ค.
- Query Stringํน์ Form ํ์์ ๋ฐ์ดํฐ๋ง ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- HTTP ํ๋ผ๋ฏธํฐ ๋ฐ์ดํฐ๋ฅผ Java ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ฒ์ด ์๋ ๋งคํ์ ํ๊ฒ ๋ฉ๋๋ค.
@RequestParam์ ์ฌ์ฉํ ํ์ผ์ ๋ก๋ ๊ธฐ๋ฅ ๊ฒ์๊ธ
ํด๋ผ์ด์ธํธ
<form action="/board/123" method="post" enctype="multipart/form-data">
<input type="text" name="title" value="SampleTitle"/>
<textarea name="content">SampleContent</textarea>
<input type="file" name="files" multiple/>
<button type="submit">Submit</button>
</form>
์๋ฒ ์ปจํธ๋กค๋ฌ
@ResponseBody
@PostMapping("/board/{id}")
public ResponseDto<Integer> updateBoard(
@PathVariable("id") int id,
@RequestParam Map<String, Object> params,
MultipartFile[] files) throws Exception {
Board board = new Board();
board.setId(id);
board.setTitle((String) params.get("title"));
board.setContent((String) params.get("content"));
// ํ์ผ ์ฒ๋ฆฌ ๋ฐ ๊ธฐํ ๋ก์ง
return new ResponseDto<Integer>(HttpStatus.OK.value(), ...);
}
@RequestParam์ ์ด์ฉํด์ ์์ฒญ form์ ํ๋ผ๋ฏธํฐ๋ฅผ Map์ผ๋ก ๋ฐ์์์ต๋๋ค.
์ ๋ก๋ ํ ํ์ผ์ MultipartFile[] ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ ฅ๋์์ต๋๋ค.
์ด๋ MultipartFile์๋ ์ด๋ ธํ ์ด์ ์ ์์ฑํด์ฃผ์ง ์์๋ ๋ฉ๋๋ค. Spring์์ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๋ฐ์ธ๋ฉ ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐธ๊ณ : https://tecoble.techcourse.co.kr/post/2021-05-11-requestbody-modelattribute/
'๐๋ฐฑ์๋ : BackEnd' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ก๊น (0) | 2024.06.08 |
---|---|
๋์์ฑ ์ฒ๋ฆฌ (0) | 2024.04.08 |
์น์์ผ (0) | 2024.02.22 |
์คํ๋ง ์ํ๋ฆฌํฐ (0) | 2024.02.21 |
REST API (1) | 2024.01.12 |