๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

@RequestParam ์—์„œ @ModelAttribute ๊นŒ์ง€์˜ ๋ณ€์ฒœ์‚ฌ ๋ณธ๋ฌธ

์Šคํ”„๋ง mvc

@RequestParam ์—์„œ @ModelAttribute ๊นŒ์ง€์˜ ๋ณ€์ฒœ์‚ฌ

sehaan 2022. 3. 22. 14:23

@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 ๊นŒ์ง€ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ด ๊ฒฝ์šฐ์—๋„ ์œ„์™€ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ง๊ด€์„ฑ์ด ๋„ˆ๋ฌด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์„ ๊ถŒํ•˜์ง€ ์•Š๋Š”๋‹ค.