[ ๋ก๋, ๋ฒํผ ๋๋ฌ ๋๋คํ ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ(2) ]
@PostMapping์ ์ด์ฉํ์ฌ
๋ก๋ ๋ฒํธ ๊ณ์ ์ถ๋ ฅํ๊ธฐ.
1. ๋์ํ๋ฉด๊ณผ ์ ์ฒด์ฝ๋
๋์ํ๋ฉด
์ ์ฒด์ฝ๋
package com.LottoWeb.LuckyLotto.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.*;
@Controller
public class RandomController {
java.util.Random rd = new java.util.Random();
@GetMapping("/")
public String firstPage() {
return "button";
}
@GetMapping("/Random1")
public String random1(Model model) {
Set<Integer> lottoSet = new TreeSet<>();
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
List<Integer> lottoList = new ArrayList<>(lottoSet);
model.addAttribute("Number1",lottoList.get(0));
model.addAttribute("Number2",lottoList.get(1));
model.addAttribute("Number3",lottoList.get(2));
model.addAttribute("Number4",lottoList.get(3));
model.addAttribute("Number5",lottoList.get(4));
model.addAttribute("Number6",lottoList.get(5));
return "button1";
}
@PostMapping("/Random1")
public String updateRandom(Model model) {
Set<Integer> lottoSet = new TreeSet<>();
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
List<Integer> lottoList = new ArrayList<>(lottoSet);
model.addAttribute("Number1",lottoList.get(0));
model.addAttribute("Number2",lottoList.get(1));
model.addAttribute("Number3",lottoList.get(2));
model.addAttribute("Number4",lottoList.get(3));
model.addAttribute("Number5",lottoList.get(4));
model.addAttribute("Number6",lottoList.get(5));
return "button1";
}
}
2. ์ด๋ป๊ฒ ๋ง๋ค์ง ์๊ฐํ๊ธฐ ๐จ๐ป๐ป
์ ์ ํ๋ ์ฝ๋๋ @GetMapping๋ง ์ฌ์ฉํ์ฌ ๋ก๋๋ฒํธ๊ฐ ์ฐ์์ ์ผ๋ก ์ถ๋ ฅ๋๋๋ก ๋ง๋ค์๋ค.
ํ์ง๋ง @PostMapping์ผ๋ก ์ฌ์ฉํ์ฌ ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๊ตฌ์กฐ๋ก ๋ฐ๊ฟ ๊ฒ์ด๋ค.
[ ๋ณ๊ฒฝ์ฌํญ ]
โก @GetMapping์ผ๋ก ์ฒ์ ๊ฐ์ ์ถ๋ ฅ์ํจ๋ค.
โก @PostMapping์ ์ด์ฉํ์ฌ ๊ทธ ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
3. @GetMapping์ผ๋ก ์ฒซ ์ถ๋ ฅํ๊ธฐ.
โก ์ฒ์ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ์๋ก์ด html์ ๋ณด๋ด๋ GET์์ฒญ ์ฒ๋ฆฌ.
@GetMapping("/Random1")
public String random1(Model model) {
Set<Integer> lottoSet = new TreeSet<>();
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
List<Integer> lottoList = new ArrayList<>(lottoSet);
model.addAttribute("Number1",lottoList.get(0));
model.addAttribute("Number2",lottoList.get(1));
model.addAttribute("Number3",lottoList.get(2));
model.addAttribute("Number4",lottoList.get(3));
model.addAttribute("Number5",lottoList.get(4));
model.addAttribute("Number6",lottoList.get(5));
return "button1";
}
ํด๋น ํ๋ก์ ํธ์๋ ์ํ ๋ชจ์์ด ์๋ button.html ํ๋ฉด๊ณผ ๋ฒํผ์ด ๋๋ ค ๋๋ค ์ซ์๊ฐ ์ถ๋ ฅ๋๋ button1.html ํ๋ฉด์ด ์๋ค. ์๋ก์ด ํ๋ฉด์ ๋ค์ด๊ฐ๋ ค๋ฉด GET ์์ฒญ์ผ๋ก ๋ณด๋ด๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋ฌด์กฐ๊ฑด ์ฒซ ํ๋ฉด์ ๋ฐ๋ ๊ฒ์ผ๋ก @GetMapping์ด ์์ด์ผํ๋ ์ด์ ๋ค.
ํด๋น ์ฝ๋๋ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ์๋ก์ด ํ๋ฉด์ ์์ฒญํ๋ ๋์์, ๋๋ค ๋ฒํธ๋ฅผ ๋ฐ์ ๊ทธ๊ฒ์ ์ํ ์์ ์ถ๋ ฅํ๋๋ก ํ๋ค.
4. @PostMapping์ผ๋ก ๊ฐ ๋ณ๊ฒฝํ๊ธฐ.
@PostMapping("/Random1")
public String updateRandom(Model model) {
Set<Integer> lottoSet = new TreeSet<>();
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
List<Integer> lottoList = new ArrayList<>(lottoSet);
model.addAttribute("Number1",lottoList.get(0));
model.addAttribute("Number2",lottoList.get(1));
model.addAttribute("Number3",lottoList.get(2));
model.addAttribute("Number4",lottoList.get(3));
model.addAttribute("Number5",lottoList.get(4));
model.addAttribute("Number6",lottoList.get(5));
return "button1";
}
๋ฒํผ์ด ๋๋ ค ์์ฒญ์ด ๋ค์ ๊ฐ๊ฒ๋๋ฉด @PostMapping์ด ์ฒ๋ฆฌํ๋๋ก ํ๋ค. ๋๋จธ์ง ์ฝ๋๋ ๋๊ฐ๋ค. @PostMapping์ ์ Form ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋, ํน์ ๋ฆฌ์์ค ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค. Rest API์์ ๊ฐ์ ์ ๋ฐ์ดํธํ๋๋ฐ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ํ๋๋ @PostMapping, ๋ค๋ฅธ ํ๋๋ @PutMapping์ด ๋๋ค.
๋์ ์ฐจ์ด๋ @PostMapping์ ์ผ๋ถ ๋ฐ์ดํฐ๋ง ์ ๋ฐ์ดํธ ํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. @PutMapping์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํ๋ค. ํ์ฌ ์ฝ๋๋ ์ฌ์ด ์ฝ๋๋ผ์, ๋ ๋ค ์ฌ์ฉํด๋ ๋ฌธ์ ๊ฐ ์๋ค. @GetMapping์ GET๋ฐฉ์์ผ๋ก ๋ค์ด์จ ์์ฒญ์ ์ฒ๋ฆฌ๋ง ํ๋ค. ์๋ฒ์ ์ํ๊ฐ ๋ณํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค. ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉํ๋ค. ๊ทธ๋์ ์ ๋ฒ ํฌ์คํ ์์ ๊ฐ์ ๊ณ์์ ์ผ๋ก ์ถ๋ ฅํ๊ณ ์ ํ์ ๋, ํ๋ฉด์ ์ฌ๋ฌ๊ฐ ๋ง๋ค์ด @GetMapping์ด ๊ณ์ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ์์ฒญ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
๐ชฝ
"ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค."
[ ๋ธ๋ก๊ทธ์ ์ด ๋ด์ฉ๋ค์ ์ถ์ฒ๋ ์๋์ ์ ์ด๋ํ ๋
๋ค์ด๊ฐ์ ์ฝ์ด๋ณด์๋ฉด ๋์ฑ ๋์์ด ๋์ค ๋ฏ ํฉ๋๋ค ]
- @GetMapping๊ณผ @PostMapping ์ถ์ฒ