작성
·
7.7K
0
SpringMVC - v1,v2 를 수행할때
코드를 오타없이 정확히 입력했는데도(혹시 몰라서 교재 복붙까지했습니다) 맨 아래 사진과 같은 에러가 뜹니다.
다른 FrontController - v1,v2,v3,v4,v5.... 들은 여전히 잘 작동하구요
제가 어떤걸 잘못했을까요??
코드를 보면 클래스명이 회색으로 뜨긴하는데..... 왜 안되는지 이유를 모르겠습니다ㅠ
+) 이게 정확한 오류 메시지인지는 모르겠으나 혹시 몰라서 이건가 싶어 남깁니다..!
2021-08-19 23:45:36.747 ERROR 14332 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular view path [new-form]: would dispatch back to the current handler URL [/springmvc/v2/members/new-form] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause
package hello.servlet.web.springmvc.v2;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@RequestMapping("/new-form")
public ModelAndView newForm() {
return new ModelAndView("new-form");
}
@RequestMapping("/save")
public ModelAndView save(HttpServletRequest request, HttpServletResponse
response) {
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
ModelAndView mav = new ModelAndView("save-result");
mav.addObject("member", member);
return mav;
}
@RequestMapping //List
public ModelAndView members() {
List<Member> members = memberRepository.findAll();
ModelAndView mav = new ModelAndView("members");
mav.addObject("members", members);
return mav;
}
}
답변 1
0
안녕하세요. maui2005님, 공식 서포터즈 OMG입니다.
위 링크와 강의를 참고하여 application.properties에 prefix, suffix를 추가해주세요.
/ (슬래시) 를 반드시 강의와 맞춰주세요.(강의 기준으로)
그래도 안될 경우 자주하는 질문을 참고하여 구글드라이브로 프로젝트 압축 후 링크 공유해주세요.
감사합니다.
원인까지는 모르겠으나
이런 코드로 인해 발생합니다.
어떻게 해결하셨는지(해결되었는지) 모르겠지만 해결이 되었다면 그 과정속에 힌트가 있지 않을까 생각합니다.
안쪽 if 조건을 보면 path가 "/"로 시작할 때 uri가 path와 같을 때 서블릿예외가 발생하는 것을 확인할 수 있습니다.
더 궁금한 사항이 있으시다면 내용을 정리하여 새로 글 작성해주세요. 추가 질문에 대한 것은 저만 확인이 가능하기 때문에 영한님이나 서포터즈분들이 볼 수 있게 글을 새로 작성해주시면 감사하겠습니다. 글을 올리실 때 이 글에 대한 링크를 첨부하셔도 좋을 것 같습니다.
감사합니다.
다른 FrontController - v1,v2,v3,v4,v5.... 들은 여전히 잘 작동하는데 SpringMVC 만 잘 작동하지 않았던 이유는 무엇인가요??
이 부분에 대한 답변은 위 링크에서 프로젝트 구조를 보시면 아시겠지만 해당 에러가 스프링mvc에서 발생(구현한)하는 에러이기 때문입니다.
해결되었습니다! 그런데 질문이 있습니다
강의 그대로 따라갔었는데 왜 저만 에러가 나는 것이고 정확한 이유가 무엇인가요??
다른 FrontController - v1,v2,v3,v4,v5.... 들은 여전히 잘 작동하는데 SpringMVC 만 잘 작동하지 않았던 이유는 무엇인가요??
참고해주신 링크를 봐도 이해가 가지 않아서 댓글로 재질문드립니다! 감사합니다:)