<mvc:annotation-driven>

<mvc:annotation-driven>:

         自动注册DefaultAnnotationHandlerMapping与AnnotaionMethodHandlerAdapter两个bean,这两个bean是SpringMVC为Controllers分发请求所必须的,并提供了数据绑定、读写xml及json的支持:当页面发出请求时,这两个bean决定了是哪一个Controller上的哪一个方法.

<!-- 处理在类级别上的@RequestMapping注解 -->

<bean   class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">

    <property name="interceptors">
        <list>
            <!-- 多个拦截器,顺序执行 -->
            <ref bean="SpringMVCInterceptor" />
            <ref bean="OpenSessionInViewInterceptor"/>
        </list>
    </property>
</bean>

<!-- 处理方法级别上的@RequestMapping注解 -->

<bean id="annotationMethodHandlerAdapter"    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

    <property name="messageConverters">

    <list>
        <bean
            class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=utf-8</value>
                    <value>text/plain;charset=utf-8</value>
                </list>
            </property>
        </bean>

        <bean  class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverterv2">

            <property name="objectMapper">
                <bean class="net.pm.misc.Hibernate4AwareObjectMapper" />
            </property>
        </bean>
    </list>
    </property>
</bean>

------------------------------------------------------
需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。



@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

猜你喜欢

转载自wangxinhong4468.iteye.com/blog/2066672