2013년 11월 3일 일요일

스프링프레임워크3.X MVC,HandlerMapping, Spring Framework강좌 하나의 요청을 특정한 Controller와 연결하고자 할 때 ...


스프링프레임워크3.X MVC,HandlerMapping, Spring Framework강좌
 
 하나의 요청을 특정한 Controller와 연결하고자 할 때 DispatcherServlet은 이를 핸들러 매핑 빈에 의뢰 한다.

 핸들러 매핑 빈은 특정 Controller Bean을 URL 패턴에 매핑 시킨다.

 스프링의 모든 핸들러 매핑은 org.springframework.web.servlet.HandlerMapping을 구현한다.

BeanNameUrlHandlerMapping : 컨트롤러의 빈 이름에 기초해 컨트롤러와 URL과 매핑한다. DispatcherServlet에서 사용하는 기본 핸들러 매핑
 
SimpleUrlHandlerMapping : 컨텍스트 설정 파일에 정의 되어있는 일련의 특성들을 사용해 컨트롤러를 URL과 매핑한다
 
CommonsPathMapHandlerMapping : 컨트롤러의 코드에 있는 소스 수준의 메타데이터를 사용하여 컨트롤러를 URL과 매핑한다.
 
1. BeanNameUrlHandlerMapping

[web.xml]
 
<servlet>
<servlet-name>onj</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
     /WEB-INF/spring-config/beannameurlmap.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

[beannameurlmap.xml ]
 
  <bean name="beanNameUrlMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 
 
2. SimpleUrlHandlerMapping
 
URL패턴을 직접적으로 컨트롤러에 매핑한다.

    <bean name=" simpleUrlMapping "
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping”>
        <property mapping=“mapping”>
             <props>
                  <prop key=“onj.do”>onjController</prop>
                  <prop key=“oraclejava.do”>oraclejavaController</prop>
             </props>
        </property>
    </bean>
 

다른방법
 
    <bean name="simpleUrlMapping"
       class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="mappings">
         <bean class="org.springframework.beans.factory.config.PropertiesFactoryBean">
             <property name="locations">
              <list>
                 <value>/WEB-INF/spring-config/urlmap.properties</value>
                 <value>/WEB-INF/spring-config/urlmap2.properties</value>
              </list>
             </property>
         </bean>
       </property>
    </bean>

[urlmap.properties]

onj.do=onjCotroller

[urlmap2.properties]

oraclejava.do=oraclejavaController2

댓글 없음:

댓글 쓰기