自定义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. appium之Context切换

    原文地址http://blog.csdn.net/Mandypan/article/details/51396302 Context切换driver.getContextHandles();//获取页 ...

  2. Python基础学习之 函数

    阅读目录 第一篇:  函数初识 第二篇:  函数命名空间 作用域 闭包 第三篇:  装饰器 第四篇:  装饰器 面试题错误点 第五篇:  迭代器生成器 第六篇:  生成器进阶 第七篇:  递归 第八篇 ...

  3. Php DOMDocument 中的 formatOutput

    Nicely formats output with indentation and extra space 是否处理 缩进和多余的空白符

  4. java路径两种写法"/"和"\\"

    String path="D:\\新建文件夹\\2.png"; File file=new File(path); System.out.println(file.exists() ...

  5. HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)

    求确定身份的人的个数. 只能确定狼的身份,因为只能找到谁说了谎.但一个人是否是民,无法确定. 将人视作点,指认关系视作边,有狼边和民边两种边. 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环 ...

  6. C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)

    转自:http://www.kuqin.com/language/20090806/66164.html 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器 ...

  7. Java并发之Semaphore的使用

    Java并发之Semaphore的使用 一.简介 今天突然发现,看着自己喜欢的球队发挥如此的棒,然后写着博客,这种感觉很爽.现在是半场时间,就趁着这个时间的空隙,说说Java并发包中另外一个重量级的类 ...

  8. Django 中间件简介

    Django 中间件简介 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. ...

  9. SpringBoot ControllerAdvice

    在Spring3.2中新增了@ControllerAdvice注解,可用于定义@ExceptionHandler @ModelAttribute @InitBinder,并应用到所有被@Request ...

  10. ls存在的文件,不能操作

    bash-4.2# pwd/oracle/product/10.2.0/db_1/network/adminbash-4.2# lssqlnet.ora                 libnrad ...