Spring

[SpringMVC] addViewController사용할때 주의할점

chanyoun 2023. 4. 9. 20:43
@GetMapping("/user/signUp")
public String showSignUpForm(){
    return "/user/form";
}

@PostMapping("/user/signUp")
public String signUp(UserSignUpDTO userSignUpDto) {
    userService.addUser(userSignUpDto.toUser());
    return "redirect:/users";
}

UserController에 위와같이 매핑을 하는 메서드가 있다. 이때 메서드를 호출하지 않는 Mapping(위에선 showSignUpForm)에 대해서는 controller에 존재하는 showSignUpForm을 삭제하고 아래와같이 MvcConfig에 매핑을 해도 잘 동작을 하는줄알았는데 Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported]오류가 발생했다.

@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {

        registry.addViewController("/user/signUp").setViewName("/user/form");
    }
}

이유를 찾아보니 아래와 같다.

addviewController

우리가 MvcConfig에서 매핑하려는 URL이 controller에서 RequestMapping 되어있다면 addViewController에서 같은 URL에대한 매핑을 처리할수 없다. 라고 나와있다.