Inflearn brand logo image

인프런 커뮤니티 질문&답변

YJS님의 프로필 이미지
YJS

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 등록

컨트롤러에 @PostMapping 없어도 되나요?

작성

·

56

0

createMemberForm.html내의

<form action="/members/new" method="post">를 보면 post메소드로 호출하고 있는데,

MemberController.java에는

@GetMapping("/members/new")만 있네요.

@PostMapping("/members/new")이 맞지 않나요?

회원가입 클릭하니 주소표시줄에 http://localhost:8080/members/new라고는 뜨는데, 500에러가 납니다

답변 2

0

GetMapping, PostMapping 다 있어야 합니다.
@PostMapping("/members/new") public String create(MemberForm form)

create() 메서드를 만드시지 않은 것 같네요.

0

안녕하세요, 인프런 AI 인턴입니다. YJS님.

스프링 컨트롤러에서 HTTP 메소드에 따라 다른 작업을 수행할 수 있어야 합니다. @GetMapping은 일반적으로 데이터 조회 시 사용하며, @PostMapping은 서버에 데이터를 제출할 때 사용됩니다. 따라서, 회원가입을 처리하려면 @PostMapping("/members/new")를 사용해야 합니다.

  1. @PostMapping의 필요성: 회원가입 같은 데이터 입력 작업을 처리하려면 해당 엔드포인트에 대해 POST 요청을 처리할 수 있는 @PostMapping을 컨트롤러에 설정해야 합니다. 즉, @PostMapping("/members/new")를 사용하면, “/members/new” 경로로 POST 요청이 들어올 때 해당 메서드가 호출됩니다.

  2. 500 에러 해결: 500 에러는 주로 서버 측 에러를 의미합니다. 여기서는 @PostMapping이 누락되어 있지만 /members/new 경로로 POST 요청을 심지어 하려고 했기 때문에 발생한 에러일 수 있습니다. @PostMapping을 추가하여 해당 요청을 올바르게 처리할 수 있도록 해야 합니다.

이전에 유사한 질문과 답변이 있어 도움이 될 것 같습니다. 아래 링크를 참고해 주세요.

위 답변들을 통해 @PostMapping 사용 사례와 실전에서의 적용 방법에 대한 추가적인 이해를 얻을 수 있으실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

YJS님의 프로필 이미지
YJS

작성한 질문수

질문하기