@RequestParam ์์ @ModelAttribute๋ฅผ ์ฌ์ฉํ๊ธฐ ๊น์ง์ ๋ณํ๋ฅผ ์์๋ณด์
1.@RequestParam ์ ํตํด ํ๋ผ๋ฏธํฐ ์ง์ ๋ฐ๊ธฐ
@PostMapping("/add")
public String addItemV1(@RequestParam String itemName,
@RequestParam int price,
@RequestParam Integer quantity,
Model model) {
Item item = new Item();
item.setItemName(itemName);
item.setPrice(price);
item.setQuantity(quantity);
itemRepository.save(item);
model.addAttribute("item", item);
return "basic/item";
}
ํด๋น ๋ณ์ ์ด๋ฆ์ ๋ง๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ๋ฐ๊ณ itemRepository์ ์ ์ฅํ๋ค.
ํด๋น item ๊ฐ์ฒด๋ฅผ ๋ชจ๋ธ์ ์ ๋ฌํ๋ค.
2.@ModelAttribute๋ฅผ ํตํ ์ฃผ์
@PostMapping("/add")
public String addItemV2(@ModelAttribute("item") Item item, Model model) {
itemRepository.save(item);
//model.addAttribute("item", item); //์๋ ์ถ๊ฐ, ์๋ต ๊ฐ๋ฅ
return "basic/item";
}
@RequestParam ์ ์๋ตํด๋ @ModelAttribute๊ฐ ์์์ ์์ฑ์๋ฅผ ์ ๋ ฅํด์ค๋ค.
๊ฒ๋ค๊ฐ ์ด๋ ๊ฒ ๋์ด์จ item ๊ฐ์ ์๋์ผ๋ก ๋ชจ๋ธ์ ๋๊ฒจ์ฃผ๊ธฐ ๋๋ฌธ์
model.addAttribute ์ฝ๋๋ฅผ ์๋ตํด๋ ๋๋ค.
๋ฐ๋ผ์ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์งค ์ ์๋ค.
๋ง์ฝ @ModelAttribute("item2")๋ผ๊ณ ์ ๋ ฅํด์ค๋ค๋ฉด, ๋ชจ๋ธ์ "item2"๋ผ๋ ์ด๋ฆ์ผ๋ก ๋๊ฒจ์ค๋ค.
3.@ModelAttribute์ ์ด๋ฆ ์๋ต
@PostMapping("/add")
public String addItemV3(@ModelAttribute Item item) {
itemRepository.save(item);
return "basic/item";
}
@ModelAttribute์ ์ด๋ฆ์ ์๋ตํด๋ ์๊ด์๋ค.
์ด ๊ฒฝ์ฐ item ํด๋์ค์ Item์ ์ ๊ธ์๋ง ์๋ฌธ์๋ก ๋ณ๊ฒฝ ํ ๋ชจ๋ธ ์ด๋ฆ์ผ๋ก ๋๊ฒจ์ค๋ค.
model.addAttribute("item",item);
4. @ModelAttribute๊น์ง ์๋ต
@PostMapping("/add")
public String addItemV4(Item item) {
itemRepository.save(item);
return "basic/item";
}
@ModelAttribute ๊น์ง ์๋ตํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ์๋ ์์ ๋๊ฐ์ด ๋์ํ๋ค.
ํ์ง๋ง ์ง๊ด์ฑ์ด ๋๋ฌด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ถํ์ง ์๋๋ค.
'์คํ๋ง mvc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@ReuquestParam Vs @PathVariable "๋ญ๊ฐ ๋ค๋ฅผ๊น?" (0) | 2022.03.23 |
---|---|
PRG๋? (Redirect๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ) (0) | 2022.03.20 |
๋ก๊น ํบ์๋ณด๊ธฐ (0) | 2022.03.12 |
[spring]IDE์์ ๋ชจ๋ http ์ ๋ณด๋ฅผ ๋ฐ์๋ณด๋ ๋ฒ (0) | 2022.03.08 |
์น ์๋ฒ์ WAS, ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ๋ ๊น (0) | 2022.03.08 |