ViewResolver(뷰를 찾아주는 해결사)란?

* 뷰의 이름과 로케일에 따라 적절한 타겟(뷰)을 찾아 인스턴스화하기 위해 스프링MVC가 사용하는 인터페이스로 Strategy패턴을 이용하여 작성되어 있다.

 

스프링은 여러가지 ViewResolver 인터페이스의 구현체를 제공하며, 모든 구현체들은 resolveViewName(String viewName, Locale locale) 메소드를 구현하고 있기 때문에 파라미터인 locale변수의 값에 따라 서로 다른 뷰를 반환하여 적절한(내가 원하는) 뷰를 찾아서 실행할 수 있다.

 

* 한줄요약: 특정한 뷰를 찾아서 실행시켜 주는 녀석

 

 

 

 

* spring에서 지원하는 다양한 뷰리졸버들.

  • NegotiatingViewResolver
  • BeanNameViewResolver
  • UrlBasedViewResolver

  • ResourceBundleViewResolver
  • XmlViewResolver
  • InternalResourceViewResolver
  • MultipartResolver


    * Dispatch-Servlet.xml에 NegotiatingViewResolver를 추가설정 하는 방법.(데이터는 JSON타입으로 넘기기로 한다..)
  • (참조: spring 3.2 docs 17.5.4 ContentNegotiatingViewResolver)

     

    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="viewResolvers">
            <list>
                <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
                <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="prefix" value="/WEB-INF/view/" />
                    <property name="suffix" value=".jsp" />
                </bean>    
            </list>
        </property>
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" />
            </list>
        </property>
    </bean>

     

    * 보너스, JSON......?

     

    난 자꾸 아래의 이분이 생각난다... 잘게잘게 썰어주시는 이분....

     

     

     

    JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다. JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이러한 속성들이 JSON을 이상적인 DATA-교환 언어로 만들고 있다....(참조: 위키)

     

    라고 하는데... 예제 객체 하나 보는것이 더 빠른 이해가 될것 같다.

     

    var json = {

    name: "홓긿돟",

    age: 20,

    job: "thief"

    }

     

    이렇게 생긴 객체타입이다.....

     

    '학습정리 > by H2K' 카테고리의 다른 글

    node.js, CORDOVA, PhoneGap  (0) 2013.07.11
    javaScript, jQuery 함수  (0) 2013.07.08
    6.25  (0) 2013.06.25
    by 알 수 없는 사용자 2013. 7. 7. 13:42