(三)Spring MVC 注解式

非注解方式

处理器适配器:

上一节中使用的处理器适配器是:org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,能执行实现了Controller接口的Handler。

还有一个处理器适配器是:org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,能执行实现了HttpRequestHandler接口的Handler。

缺点:都必须重写实现的接口的方法,也就是一个Handler中不能有两个方法或两个以上的来处理不同的逻辑。

处理器映射器:

上一节中使用的映射器是:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,可以根据bean的name作为url进行查找。

还有一种处理器映射器叫简单映射器:org.springframework.web.servlet.handler.SimpleUrlHandlerMapping,它的映射方式是直接根据url来的。

缺点:每一个Handler都要去XML中配置url。

注解方式

把非注解方式中的处理器映射器和处理器适配器都换成下面的:

注解映射器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
注解适配器:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

即:

1 <bean class="com.springmvc.practice.HelloWorldController" />
2 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
3 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

至于url,只需要我们在类上用@Controller注解,在方法上用@RequestMapping注解就可以了。这样一个方法就对应一个url,多个方法可以被映射。

开发中

1、我们只需要配置<mvc:annotation-driver/>,就不用再配置适配器和映射器了。即 

1    <mvc:annotation-driver/>2         等于
3   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
4   <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

2、使用<context:component-scan base-package="com.demo.web.controllersl" />,就不用在xml中一个一个配置Handler的bean了

1  <!-- use-default-filters="false" 只扫描指定的注解 -->
2    <context:component-scan base-package="com.demo.web.controllers" use-default-filters="false" />

现在XML文件配置成这样子:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4   xmlns:p="http://www.springframework.org/schema/p"
 5   xmlns:context="http://www.springframework.org/schema/context"
 6   xmlns:util="http://www.springframework.org/schema/util"
 7   xmlns:mvc="http://www.springframework.org/schema/mvc"
 8   xsi:schemaLocation="
 9   http://www.springframework.org/schema/beans
10   http://www.springframework.org/schema/beans/spring-beans.xsd
11   http://www.springframework.org/schema/util
12   http://www.springframework.org/schema/util/spring-util.xsd
13   http://www.springframework.org/schema/context
14   http://www.springframework.org/schema/context/spring-context.xsd
15   http://www.springframework.org/schema/mvc
16   http://www.springframework.org/schema/mvc/spring-mvc.xsd" >
17
18     <!-- 默认的注解映射的支持 -->
19     <mvc:annotation-driven/>
20
21     <!-- 如果当前请求为“/”时,则转发到“/helloworld/index” -->
22     <mvc:view-controller path="/" view-name="forward:/helloworld/index"/>
23     <!-- 静态资源映射 -->
24     <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
25     <mvc:resources mapping="/css/**" location="/WEB-INF/css/" />
26     <mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" />
27     <mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" />
28     <mvc:resources mapping="images/**" location="/WEB-INF/images/" />
29     <!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 -->
30     <mvc:default-servlet-handler/>
31
32     <!-- 开启controller注解支持 -->
33     <!-- use-default-filters="false" 只扫描指定的注解 -->
34     <context:component-scan base-package="com.demo.web.controllers" use-default-filters="false">
35         <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
36     </context:component-scan>
37
38     <!-- 视图解析器 -->
39     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
40        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
41        <property name="contentType" value="text/html"/>
42        <property name="prefix" value="/WEB-INF/views/"/>
43        <property name="suffix" value=".jsp"/>
44     </bean>
45
46 </beans>
时间: 2024-12-05 11:52:27

(三)Spring MVC 注解式的相关文章

Spring mvc注解式开发入门

java类 package com.cloud.po; import Java.util.Date; public class Items { private Integer id; private String name; private Float price; private String pic; private Date createtime; private String detail; public Integer getId() { returnid; } public void

spring(7)--注解式控制器的数据验证、类型转换及格式化

7.1.简介 在编写可视化界面项目时,我们通常需要对数据进行类型转换.验证及格式化. 一.在Spring3之前,我们使用如下架构进行类型转换.验证及格式化: 流程: ①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值: ②:数据验证:需要显示调用Spring的Validator接口实现进行数据验证: ③:格式化显示:需要调用PropertyEditor的getText进行格式化显示. 使用

spring(6)--注解式控制器

6.1.注解式控制器简介 一.Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类.已经@Deprecated.   二.Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类. 并且提供了一组强大的注解: 需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controll

Spring MVC注解的一些案列

1.  spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo

spring mvc(注解)上传文件的简单例子

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少 大家可以看具体代码如下: web.xml &

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

spring mvc 注解入门示例

web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/ja

spring mvc 注解@Controller @RequestMapping @Resource的详细例子

现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理. 一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.comm

spring mvc 注解示例

springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframewo