스프링/3. 스프링 MVC

36. 실용적인 형식

sdafdq 2023. 8. 11. 21:39
@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