์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- stream
- ์
- StringBuffer
- ๋ฐฑ์ค9093
- ์คํ์์ด
- ์ฐ์ฐ์
- ์คํ
- StringBuilder
- ์ฐ
- ์คํธ๋ฆผ
- ๋
- ์ฟ ํกDB
- java
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ๋ฌธ์์ด
- ๋ฐฑ์ค1874
- ๋ฐฑ์ค9012
- ์ฟ ํกERD
- ์๋ฐ
- ๋ฐฐ์ด
- ๋ฐ์ดํฐํ์
- Today
- Total
Tech Log ๐ ๏ธ
PRG๋? (Redirect๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ) ๋ณธ๋ฌธ
"Redirect๋ฅผ ์ ํ์ํ ๊น?"
PRG๋ฅผ ์์๋ณด๊ธฐ ์ ์ ๋จผ์ Rediect์ ํ์์ฑ์ ์ ํ์๊ฐ ์๋ค.
๋ง์ฝ ์ํ์ ์์ , ๊ฐ๋ฐํ๋ ๋ฉ์๋๋ฅผ ๊ฐ๋ฐํ๋ค๊ณ ์๊ฐํด๋ณด์
@PostMapping("/addForm")
public String addCafe(@ModelAttribute Cafe cafe){
cafeRepository.save(cafe);
return "basicCafe/cafe";
}
์นดํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ๋ฉ์๋๋ฅผ ๋ง๋ค์๋ค.
ํ์ง๋ง ์ถ๊ฐ๋ฅผ ์๋ฃํ ๋ค ์๋ก ๊ณ ์นจ์ ๋๋ฅด๊ฒ ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๋๊ฐ์ ์ ๋ณด๋ค์ด ๊ณ์ํด์ ์ ๋ ฅ๋ ๊ฒ์ด๋ค.
์ด๋ Redirect๋ฅผ ์ค์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ธ๋ฐ, ์ด๋ ๊ฒ๋๋ฉด ๋ง์ง๋ง์ผ๋ก ์๋ฒ์ ์ ์กํ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ ๋ฉ์๋๋ฅผ ๊ณ์ ์คํ์ํจ๋ค.
POST, Redirect Get
PRG๋ ์๋ก๊ณ ์นจ ์ ๋๊ฐ์ ๋ฉ์๋๊ฐ ๊ณ์ํด์ ์คํ๋๋ ๊ฒ์ ๋ง์์ค๋ค.
๋ง ๊ทธ๋๋ก ๊ฒฝ๋ก๋ฅผ ์ฐํํด์ฃผ๋ ๊ฒ์ด๋ค.
๋ฉ์๋ ์คํ ์๋ฃ ํ ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ํธ์ถํด์ค์ผ๋ก์จ ์๋ฒ๋ ๋ ์ด์ ๋๊ฐ์ ๋ฉ์๋๋ฅผ ๋ฐ๋ณตํ์ง ์๊ฒ ๋๋ค!
๊ทธ๋ผ ์ด์ ์์์ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋ ์ถ๊ฐ ๋ฉ์๋๋ฅผ ์์ ํด๋ณด์
@PostMapping("/addForm")
public String addCafe(@ModelAttribute Cafe cafe){
cafeRepository.save(cafe);
return "redirect:/basicCafe/cafes"+ cafe.getId();
}
์ด๋ ๊ฒ ๋ฉ์๋๋ฅผ ์์ ํด์ฃผ๋ฉด ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ์ ์ฉ์ํด์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
ํ์ง๋ง
"cafe.getId() ์ฒ๋ผ URL์ ๋ณ์๋ฅผ ๋ํด์ ์ฌ์ฉํ๋ ๊ฒ์ URL ์ธ์ฝ๋ฉ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ํํ๋ค."
์ฝ๊ฒ ์ค๋ช ํ์๋ฉด ๋ณ์์ ๋์์ฐ๊ธฐ๋ ํ๊ธ์ด ํฌํจ๋ ๊ฒฝ์ฐ ์๋ฒ๊ฐ ์ธ์ํ ์ ์๊ฒ url์ธ์ฝ๋ฉ์ ํด์ฃผ์ด์ผํ๋๋ฐ
์ด๊ฒ์ด ์๋๋ค๋ ๊ฒ์ด๋ค.
๊ฒฐ๊ตญ ๋ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋๊ฐ์ง ํด๊ฒฐ์ฑ ์ด ์ ์๋์๋ค.
์ฒซ๋ฒ์งธ, @PathVariable ์ฌ์ฉ
@PostMapping("/edit/{cafeId}")
public String edit(@PathVariable Long cafeId,@ModelAttribute Cafe cafe){
cafeRepository.update(cafeId,cafe);
return "redirect:/basic/items/{cafeId}";
}
@PathVariable ์ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ์ปจํธ๋กค๋ฌ์ ๋งคํ๋ ๊ฐ๋ Redirect ๊ฐ์ ์ฌ์ฉํ ์ ์๋ค.
๋๋ฒ์งธ, RedirectAttributes ์ฌ์ฉ
@PostMapping("/addForm")
public String addCafe(@ModelAttribute Cafe cafe, RedirectAttributes redirectAttributes){
Cafe savedCafe = cafeRepository.save(cafe);
redirectAttributes.addAttribute("cafeId",savedCafe.getId());
redirectAttributes.addAttribute("status",true);
return "redirect:/basicCafe/items/{cafeId}";
}
RedirectAttributes ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด, URL ์ธ์ฝ๋ฉ๋ ํด์ฃผ๊ณ , pathVarible , ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ๊น์ง ์ฒ๋ฆฌํด์ค๋ค.
์ด ๋ฉ์๋๋
localhost:8080/basic/cafes/3?status=true
๋ฅผ ๋ฐํํด์ค๋ค.
๊ตณ์ด PathVariable์ ์ธ ํ์๋ ์๊ณ url ์ธ์ฝ๋ฉ ๊ฑฑ์ ๋ ํ ํ์๊ฐ ์๋ค.
๊ฒ๋ค๊ฐ status ํ๋ผ๋ฏธํฐ๊น์ง ์ถ๊ฐํด์ค๋ค !! (๋ฐ์ธ๋ฉ ๋์ง ์์์ ๊ฒฝ์ฐ)
ํ๋ผ๋ฏธํฐ๋ ํ์๋ฆฌํ ๋ฌธ๋ฒ์์ ${param.status}๋ก ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค
'์คํ๋ง mvc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@ReuquestParam Vs @PathVariable "๋ญ๊ฐ ๋ค๋ฅผ๊น?" (0) | 2022.03.23 |
---|---|
@RequestParam ์์ @ModelAttribute ๊น์ง์ ๋ณ์ฒ์ฌ (0) | 2022.03.22 |
๋ก๊น ํบ์๋ณด๊ธฐ (0) | 2022.03.12 |
[spring]IDE์์ ๋ชจ๋ http ์ ๋ณด๋ฅผ ๋ฐ์๋ณด๋ ๋ฒ (0) | 2022.03.08 |
์น ์๋ฒ์ WAS, ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ๋ ๊น (0) | 2022.03.08 |