@Controller
@RequestMapping("springmvc/v3/members")
public class SpringMemberControllerV3 {
MemberRepository memberRepository = MemberRepository.getInstance();
// @RequestMapping(value = "/save", method = RequestMethod.POST)
@PostMapping("/save")
public String save(@RequestParam("username") String username, @RequestParam("age") int age, Model model) {
Member member = new Member(username, age);
Member savedMember = memberRepository.save(member);
model.addAttribute("member",member);
return "save-result";
}
// @RequestMapping(method = RequestMethod.GET)
@GetMapping
public String findAll(Model model) {
List<Member> members = memberRepository.findAll();
model.addAttribute("members", members);
return "members";
}
// @RequestMapping(value = "/new-form",method = RequestMethod.GET)
@GetMapping("/new-form")
public String newMemberForm() {
return "new-form";
}
}
@RequestMapping(value = "/save", method = RequestMethod.POST)
이렇게 하면, 들어오는 요청의 메소드를 POST로 제한할 수 있다. 포스트맨으로 확인결과, 맞지 않는 메소드로 요청을 보낼시 405(Method Not Allowed)가 응답된다.
저걸 또
@PostMapping("/save")
이렇게 바꿀 수 있다.
@PostMapping 들어가 보면 저기 안에 @RequestMapping(method = RequestMethod.POST) 이게 있다.
이렇게 스프링은 여러 애노테이션을 조합한 에노테이션이 자주 있다.
@RequestParam("username") String username, @RequestParam("age") int age, Model model
이렇게 아예 요청의 key로 인자로 받을 수 있다. 거기다 age처럼 형변환도 알아서 해준다.
또 Model을 인자로 넣어놓으면 그 모델을 받을 수 있다.
저 모델은 당연히 외부에서 객체를 넣어준 것이므로 굳이 내가 return을 한다던지 할 필요가 없다.
보통 이런 식으로 많이 쓴다.
'스프링 > 3. 스프링 MVC' 카테고리의 다른 글
38. 로그 (0) | 2023.08.11 |
---|---|
37. 스프링MVC 시작 (0) | 2023.08.11 |
35. 통합 (0) | 2023.08.10 |
34. 스프링 MVC (0) | 2023.08.09 |
33. 뷰 리졸버 (0) | 2023.08.09 |