저번에는 잘못된 정보를 폼에 입력 받았을 때 허용한다는 것을 알고 우리가 필요한 정보에 맞도록 데이터를 검사했다.
지금까지 타코 클라우드 애플리케이션의 세 가지 컨트롤러를 작성하였다.
HomeController
DesignTacoController
OrderController
하지만 이 중에서 HomeController는 모델 데이터나 사용자 입력을 처리하지 않는다.
이런 간단한 컨트롤러의 경우는 다른 방법으로 컨트롤러를 정의할 수 있다.
이번에는 이 컨트롤러를 뷰 컨트롤러로 새롭게 정의해볼 것이다.
ℓ 뷰 컨트롤러 작업하기
package tacos.web;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("home");
}
}
<뷰 컨트롤러 선언하기>
WebConfig는 뷰 컨트롤러의 역할을 수행하는 구성 클래스이며, WebMvcConfigurer 인터페이스를 구현한다.
WebMvcConfigurer 인터페이스는 스프링 MVC를 구성하는 메서드를 정의하고 있다.
그리고 인터페이스임에도 불구하고, 정의된 모든 메서드의 기본적인 구현을 제공한다.
따라서 우리가 필요한 메서드만 선택해서 오버라이딩하면 된다.
여기서는 addViewController()를 오버라이딩 하고 있다.
addViewController() 메서드는 하나 이상의 뷰 컨트롤러를 등록하기 위해 ViewControllerRegistry를 인자로 받는다.
여기서는 우리의 뷰 컨트롤러가 GET 요청을 처리하는 경로인 "/"를 인자로 전달하여 addViewController()를 호출한다.
이 메서드는 ViewControllerRegistration 객체를 반환한다.
그리고 "/"경로의 요청이 전달되어야 하는 뷰로 home을 지정하기 위해 연달아 ViewControllerRegistration 객체의
setViewName()을 호출한다.
이렇게 구성 클래스(WebConfig)의 몇 줄 안되는 코드로 HomeController를 대체할 수 있다.
'개발 서적 > 스프링 인 액션' 카테고리의 다른 글
스프링 인 액션 Chapter 2.3 :: 폼 입력 유효성 검사하기 (0) | 2023.09.12 |
---|---|
스프링 인 액션 Chapter 2.2 :: 폼 제출 처리하기 (0) | 2023.09.11 |
스프링 인 액션 Chapter 2.1 :: 정보 보여주기 (0) | 2023.08.24 |
스프링 인 액션 Chapter 1.1 :: 스프링 시작하기 (1) | 2023.08.23 |