自定义View系列教程00–推翻自己和过往,重学自定义View

自定义View系列教程01–常用工具介绍

自定义View系列教程02–onMeasure源码详尽分析

自定义View系列教程03–onLayout源码详尽分析

自定义View系列教程04–Draw源码分析及其实践

自定义View系列教程05–示例分析

自定义View系列教程06–详解View的Touch事件处理

自定义View系列教程07–详解ViewGroup分发Touch事件

自定义View系列教程08–滑动冲突的产生及其处理


探索Android软键盘的疑难杂症

深入探讨Android异步精髓Handler

详解Android主流框架不可或缺的基石

站在源码的肩膀上全解Scroller工作机制


Android多分辨率适配框架(1)— 核心基础

Android多分辨率适配框架(2)— 原理剖析

Android多分辨率适配框架(3)— 使用指南


在上一篇中,我们完成了一个SpringMVC的HelloWorld。在这个示例中我们使用的系统默认的HandlerMapping和HandlerAdapter即BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping。在本篇博客中我们再来瞅瞅其他的HandlerMapping和HandlerAdapter。


SimpleUrlHandlerMapping

SimpleUrlHandlerMapping用于将url与Controller相对应。

<!-- 自定义Controller -->
<bean id="myController" name="/welcome.do" class="cn.com.MyController"></bean>

<!-- 简单处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/hello.do">myController</prop>
            <prop key="/hi.do">myController</prop>
        </props>
    </property>
</bean>

在此先配置我们的自定义Controller,然后利用SimpleUrlHandlerMapping配置映射。在该配置中,将/hello.do和/hi.do都映射至myController。所以,当我们在浏览器中输入http://localhost:8081/SpringMVC02/hi.do或者http://localhost:8081/SpringMVC02/hello.do都会执行到MyController


ControllerClassNameHandlerMapping

相对于前两种处理映射器,ControllerClassNameHandlerMapping就显得简单多了,在配置ControllerClassNameHandlerMapping后,我们只需在浏览器中输入Controller对应的名字.do就行,但是务必注意其第一个字母必须小写。

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>

比如:http://localhost:8081/SpringMVC02/myController.do

嗯哼,至此SpringMVC常见的三种处理器映射器就已经介绍完了;我们可依据需求在springmvc.xml中配置;三者可共存,不会冲突。


HttpRequestHandlerAdapter

在上一篇博客中我们的MyController实现了Controller接口,使用的是SimpleControllerHandlerAdapter做为处理器适配器执行Controller。除此以外,可让我们的Controller实现HttpRequestHandler接口,比如:MyHttpController implements HttpRequestHandler,此时可用HttpRequestHandlerAdapter做为处理器适配器执行Controller。请看如下示例:

/**
* @author 原创作者:谷哥的小弟
* @blog   博客地址:http://blog.csdn.net/lfdfhl
* @time   创建时间:2017年7月25日 下午10:02:30
* @info   描述信息:实现了HttpRequestHandler接口的Controller
*/
package cn.com;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.HttpRequestHandler;

public class MyHttpController implements HttpRequestHandler {

    @Override
    public void handleRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setAttribute("helloSpringMVC", "实现了HttpRequestHandler接口的Controller");
        request.getRequestDispatcher("/WEB-INF/jsps/test.jsp").forward(request, response);

    }

}

在此实现一个Controller

<!-- 处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>

再在springmvc.xml中配置处理器适配器

最后,在浏览器访问http://localhost:8081/SpringMVC02/httpController.do即可


关于SpringMVC常用的处理器映射器和处理器适配器就介绍到此。

SpringMVC札集(02)——SpringMVC入门完整详细示例(下)的更多相关文章

  1. SpringMVC札集(01)——SpringMVC入门完整详细示例(上)

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  2. SpringMVC札集(03)——基于注解的SpringMVC入门完整详细示例

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  3. SpringMVC札集(05)——SpringMVC参数回显

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  4. SpringMVC札集(04)——SpringMVC传递参数

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  5. ASP.NET + MVC5 入门完整教程三 (下) ---MVC 松耦合

    建立松耦合组件 MVC 模式最重要的特性之一视他支持关注分离,希望应用程序中的组件尽可能独立,只有很少的几个可控依赖项.在理想的情况下,每个组件都不了解其他组件,而只是通过抽象接口来处理应用程序的其他 ...

  6. SpringMVC札集(10)——SSM框架整合

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  7. SpringMVC札集(09)——拦截器

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  8. SpringMVC札集(08)——文件上传

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  9. SpringMVC札集(07)——JSON数据

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

随机推荐

  1. mybatis 插入之后返回id

    usermapper.xml <insert id="insert" parameterType="app.models.User" keyPropert ...

  2. $ python-json模块的基本用法

    准备工作 import json # 准备数据: d = dict(name = 'Tom',age = 18) json_str = '{"name":"Tom&quo ...

  3. git指令整理汇总

    Git 1.git init 创建版本库,初始化 2.git add  向git添加文件,把文件添加到版本库 3.git log   告诉我们历史记录 4.git commit -m ‘’ 提交修改 ...

  4. hadoop08---读写锁

    ReentrantLock 直接使用lock接口的话,我们需要实现很多方法,不太方便,ReentrantLock是唯一实现了Lock接口的类,并且ReentrantLock提供了更多的方法,Reen ...

  5. Ubuntu16.04安装Appium

    准备工作 1.安装Node 下载地址:https://nodejs.org/en/download/ 下载完后解压,设置环境变量 配置Node环境变量$sudo vim /etc/profile 在文 ...

  6. mysql行列互相转换

    列转行: mysql> select * from test; +------+----------+-------+ | id | subject | score | +------+---- ...

  7. kali安装后配置

    0x00.安装Vmware Tools 由于是在VMware Workstation里面安装的,所以需要首先安装VMware tools工具方便我们Ctrl+C和Ctrl+V,步骤如下: 在VMWar ...

  8. elasticsearch报错[WARN ][bootstrap ] Unable to lock JVM Memory: error=12,reason=Cannot allocate memory,解决

    早上在服务器上安装elasticsearch集群,在其中的一台上面安装好elasticsearch之后安装了一些插件,其中一个插件是marvel,结果可能是新版本不支持这个插件,就没有安装成功,也就索 ...

  9. const修饰的常量 不能被直接修改 但是可以通过指针进行间接修改

    大家都知道如下代码中,被const限定的a是不可以被直接修改的 void main() { const int a = 3; a=1; } 在C++中const修饰的常量,不能被直接修改,但是可以通过 ...

  10. MongoDB快速入门(十)- Limit(),Skip() 方法

    Limit() 方法 要限制 MongoDB 中的记录,需要使用 limit() 方法. limit() 方法接受一个数字型的参数,这是要显示的文档数. 语法: limit() 方法的基本语法如下 & ...