뷰는 MVC아키텍쳐에서 모델이 가진 정보를 어떻게 표현해야 하는지에 대한 로직을 갖고 있는 컴포넌트.

웹 환경에서 뷰가 생성하는 결과물은 일반적으로 브라우저에 나타낼 수 있는 HTML.

 컨트롤러가 작업을 마친 후 뷰 정보를 ModelAndView타입 오브젝트에 담아서 DispatchServlet에 돌려주는 방법은 두 가지가 있다. 

 1. View 타입의 오브젝트를 돌려주는 방법

 2. 뷰 이름을 돌려주는 방법. 

뷰 이름을 돌려주는 경우는 뷰 이름으로부터 실제 사용할 뷰를 결정해주는 뷰 리졸버가 필요하다. 뷰 리졸버가 처리하는 이런 뷰 이름을 '논리적인 뷰 이름'이라고 부르기도 한다. 논리적인 이름을 실질적인 뷰 오브젝트로 바꿔주기 때문.

 

1.뷰

DispatchServlet이 사용하는 뷰 오브젝트는 스프링의 View 인터페이스를 구현해야 한다. 

1
2
3
4
5
6
public interface View{
    String getContentType();
 
    void render(Map<String, ?> model, HttpServletRequest request,
                HttpServletResponse response) throws Exception;
}
cs

View 인터페이스는 뷰 오브젝트가 생성하는 콘텐트의 타입 정보를 제공해주는 getContentType() 메서드와 모델을 전달받아 클라에 돌려줄 결과물을 만들어주는 render() 메서드, 두 가지로 구성된다. View 인터페이스를 직접 구현해서 뷰를 만들어야 할 필요는 없다. 스프링이 웹에서 자주 사용되는 타입의 컨텐트를 생성해주는 다양한 뷰를 이미 구현해놓았기 때문. 

 

+ Recent posts