Home » SPRING -6.View

SPRING -6.View

6.1. ViewResolver

[ ViewResolver 종류 및 설명 ]

명 칭 설 명
InternalResourceViewResolver ViewResolver를 지정하지 않았을 때 자동으로 등록되는 기본 ViewResolver. 주로 JSP를 view로 쓰고자 할 때 사용
VelocityViewResolver Velocity 를 view로 쓰고자 할 때 사용
FreeMarkerVieResolver FreeMarker를 view로 쓰고자 할 때 사용
ResourceBundleViewResolver views.properties파일에 있는 View 클래스와 URL 등의 정보를 가져와 뷰를 생성
XmlViewResolver ResourceBundleViewResolver와 유사하나 XML의 bean 설정 파일을 이용해 뷰를 등록할 수 있다. View 이름과 일치하는 아이디를 가진 bean을 View로 사용
BeanNameViewResolver View 이름과 동일한 bean을 View로 사용
ContentNegotiatingViewResolver 직접 View 이름으로 View를 찾아주지 않고, 미디어 타입 정보를 활용해서 다른 ViewResolver를 찾도록 위임한 후에 가장 적절한 View를 선정해서 돌려준다

6.2. Test Code 작성

6.2.1. JSP 화면 출력

  • InternalResourceViewResolver를 사용한 JSP 화면 호출 예제

[ TestController.java ]

  • 데이터와 View의 정보를 담고 있는 ModelAndView를 생성 후, 정보를 셋팅하여 리턴한다.
  • 위의 코드는 아래와 같이 사용 가능.

[ servlet-context.xml ]

  • JSP 화면을 출력하기 위한 InternalResourceViewResolver 설정.
    • prefix : 응답받은 view 정보에 붙을 접두사
    • suffix : 응답받은 view 정보에 붙을 접미사
  • TestController 기준으로 리턴된 View정보(“/test/test)에 접미사(“/WEB-INF/views”)와 접두사(“.jsp”)를 조립해 완성된 view 정보(“/WEB-INF/views/test/test.jsp”)에 화면을 뿌려준다.

6.2.2. 파일 다운로드 출력

[ FileDownloadView.java ]

  • 파일을 다운로드를 위해 AbstractView를 상속받아 만든 View.
  • @Component를 사용하여 bean으로 등록.
  • xml을 사용할 경우 [ servlet-context.xml ] 파일에 아래와 같은 설정을 통해 bean을 등록한다.

  • viewResolver는 한번에 복수 설정 가능하며, 복수 설정할 경우 order값으로 viewResolver 간의 우선순의를 정할 수 있다.

[ TestController.java ]

  • BeanNameViewResolver를 통해 bean으로 등록 된 fileDownloadView로 가게 된다.