CAFE

์ด๋™์ค€

[๋ฉ”๋ชจ] ๐Ÿ“Œ JSP ํผ ๋‹ค์ค‘ ์ž…๋ ฅ ๊ฐ’์„ MVC์—์„œ List๋กœ ๋ฐ”์ธ๋”ฉ

์ž‘์„ฑ์ž์ด๋™์ค€|์ž‘์„ฑ์‹œ๊ฐ„25.10.01|์กฐํšŒ์ˆ˜30 ๋ชฉ๋ก ๋Œ“๊ธ€ 0

spring MVC ๋ฐ”์ธ๋”ฉ ๊ทœ์น™

spring์€ @ModelAttribute ๋กœ ๋„˜์–ด์˜จ ํผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด ๋‹จ์œ„๋กœ ๋ฐ”์ธ๋”ฉ

๋‹จ์ผ VO๋Š” input name="name" ๊ฐ™์€ ๊ฑธ ์ž๋™์œผ๋กœ ๋งคํ•‘ ๊ฐ€๋Šฅ

๊ทผ๋ฐ List<VO>๋กœ ๋ฐ”๋กœ ๋ฐ›์œผ๋ ค๋ฉด

name[0].name ์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ์—ฌ์•ผํ•˜๊ณ , ๊ทธ๊ฑธ List๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ์ง์ ‘ ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์—†์Œ....

- ๋‹จ์ผ ์ˆ˜์ • ๊ธฐ๋Šฅ์€ ์‚ด๋ฆฌ๊ณ  ํ•ด๋‹น ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง์œผ๋กœ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์ด๊ฒƒ์ €๊ฒƒ ํ•ด๋ดค๋Š”๋ฐ ์ž˜ ์•ˆ๋ผ๋”๋ผ๊ตฌ์š”?

* List๋Š” ์ง์ ‘ ์ธํ„ฐํŽ˜์ด์Šคํ™” ๋ถˆ๊ฐ€ - new ๋ชปํ•จ.

ย 

๊ป๋ฐ๊ธฐ VO ํด๋ž˜์Šค์—์„œ List <vo> ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ๊บผ๋‚ด์„œ ์“ฐ๊ธฐ๋กœ ํ•จ.

๋‚ด๋ถ€์—์„œ List<vo> = new ArrayList ์ฒ˜๋Ÿผ ์ปฌ๋ ‰์…˜์„ ์ดˆ๊ธฐํ™”

spring์€ new List()๋Š” ํ• ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ wrapper ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ - ๋‚ด๋ถ€ List์— name[0], name[0] ... ๋ฐ”์ธ๋”ฉ....ย 

ย 

๊ป๋ฐ๊ธฐ VO ํด๋ž˜์Šค ํ•˜๋‚˜๋กœ ๊ธฐ์กด ๋กœ์ง์€ ์œ ์ง€ํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ์™€ JSP name๋งŒ ์ˆ˜์ •ํ•ด์„œ ์„ ํƒ ํ•ญ๋ชฉ ์ˆ˜์ • ๊ธฐ๋Šฅ ์™„์„ฑ ํ• ์ˆ˜ ์žˆ์—ˆ์Œ....

ย 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.spring.springGroupS08.vo;
 
import java.util.List;
 
import lombok.Data;
 
@Data
public class ProductVOList {
    private List<ProductVO> products;
}
 
--------------------------------------------------------------------------------------------------------------
 
@Controller
@RequestMapping("/personal/admin/productService")
public class AdminProductController {
    @Autowired ProductService productService;
 
 
 
    /* ๋“ฑ๋ก๋œ ์ƒํ’ˆ ์ˆ˜์ • */
    @PostMapping("/productUpdate")
    public String productUpdatePost(ProductVO vo, RedirectAttributes redirectAttributes) {
        int res = productService.updateProduct(vo);
        String msg = (res > 0) ? msg = "์ƒํ’ˆ ์ˆ˜์ • ์™„๋ฃŒ" : "์ˆ˜์ • ์‹คํŒจ";
        redirectAttributes.addFlashAttribute("msg", msg);
        return "redirect:/personal/admin/productService/productDelete";
    }
 
    /* ์„ ํƒ๋œ ์ƒํ’ˆ ์ˆ˜์ • */
    @PostMapping("/selectUpdate")
    public String selectUpdate(@ModelAttribute("products") ProductVOList wrapper,
                               @RequestParam(value="selectId", required=false) List<Long> selectIds,
                               RedirectAttributes redirectAttributes) {
      int count = 0;
      if (selectIds != null) {
        for (ProductVO vo : wrapper.getProducts()) {
          if (selectIds.contains(vo.getProductId())) {
              count += productService.updateProduct(vo);
          }
        }
      }
      redirectAttributes.addFlashAttribute("msg", count + "๊ฐœ ์ƒํ’ˆ ์ˆ˜์ • ์™„๋ฃŒ");
      return "redirect:/personal/admin/productService/productDelete";
    }
}
 
 
 
cs

ย 

๋‹ค์Œ๊ฒ€์ƒ‰
ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์—ด๊ธฐ

๋Œ“๊ธ€

๋Œ“๊ธ€ ๋ฆฌ์ŠคํŠธ
๋งจ์œ„๋กœ

์นดํŽ˜ ๊ฒ€์ƒ‰

์นดํŽ˜ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅํผ