一、概述

Controller接口类图如下,其中,BaseCommandController已从Spring 4移除

基于继承Controller接口的方式已经不推荐使用,仅供学习参考

二、基于Controller接口方式的使用介绍

1、继承自Controller接口的实现类AbstractController,可实现:

  • 请求类型限定,如post
  • session校验
  • 缓存控制,如强缓存、协商缓存

详细可参考Controller接口控制器详解(1)

2、直接映射到视图、无功能处理的Controller接口的实现类:

  • ParameterizableViewController  指定某一视图名
  • UrlFilenameViewController  采用Ant-style 模式进行匹配,通过url生成视图名

详细可参考Controller接口控制器详解(3)

3、一个Controller可映射多个功能处理方法的实现类:MultiActionController,两种使用方式:

  • 继承MultiActionController
  • 直接实例化MultiActionController, 定义并注入delegate

详细可参考Controller接口控制器详解(5)

三、数据的类型转换和验证

1、类型转换

PropertyEditor被限制为只能String<——>Object之间转换,不能Object<——>Object,包括两类

  • Spring内建的PropertyEditor
  • 用户自定义,需继承PropertyEditorSupport ,用户自定义PropertyEditor有三类注册方式:
  • WebDataBinder:针对单个控制器,暂无使用方式
  • WebBindingInitializer:批量注册,MultiActionController中存在setter方法,可通过bean注入
  • 使用约定自动全局注册:自定义的PropertyEditor放在和模型类同包下,且Editor命名规则必须是“模型类名Editor”

详细可参考Controller接口控制器详解(6)

2、数据验证

待仔细研读

详细可参考Controller接口控制器详解(7 完)

Spring MVC 使用介绍(三)—— Controller接口控制器的更多相关文章

  1. Spring MVC 使用介绍(十四)文件上传下载

    一.概述 文件上传时,http请求头Content-Type须为multipart/form-data,有两种实现方式: 1.基于FormData对象,该方式简单灵活 2.基于<form> ...

  2. Spring MVC 使用介绍(十三)数据验证 (一)基本介绍

    一.消息处理功能 Spring提供MessageSource接口用于提供消息处理功能: public interface MessageSource { String getMessage(Strin ...

  3. Spring MVC 使用介绍(十五)数据验证 (二)依赖注入与方法级别验证

    一.概述 JSR-349 (Bean Validation 1.1)对数据验证进一步进行的规范,主要内容如下: 1.依赖注入验证 2.方法级别验证 二.依赖注入验证 spring提供BeanValid ...

  4. SpringMVC(4.1):Controller接口控制器详解(1)

    原文出处: 张开涛 4.1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: ...

  5. Controller接口控制器

    1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业务对 ...

  6. 2017.3.31 spring mvc教程(三)拦截器

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  7. Spring MVC学习------------核心类与接口

    核心类与接口: 先来了解一下,几个重要的接口与类. 如今不知道他们是干什么的没关系,先混个脸熟,为以后认识他们打个基础. DispatcherServlet   -- 前置控制器 HandlerMap ...

  8. Spring MVC 使用介绍(五)—— 注解式控制器(一):基本介绍

    一.hello world 相对于基于Controller接口的方式,基于注解方式的配置步骤如下: HandlerMapping 与HandlerAdapter 分别配置为RequestMapping ...

  9. Spring MVC 使用介绍(十二)控制器返回结果统一处理

    一.概述 在为前端提供http接口时,通常返回的数据需要统一的json格式,如包含错误码和错误信息等字段. 该功能的实现有四种可能的方式: AOP 利用环绕通知,对包含@RequestMapping注 ...

随机推荐

  1. python调用数据返回字典dict数据的现象1

    python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...

  2. mybatis源码-解析配置文件(四-1)之配置文件Mapper解析(cache)

    目录 1. 简介 2. 解析 3 StrictMap 3.1 区别HashMap:键必须为String 3.2 区别HashMap:多了成员变量 name 3.3 区别HashMap:key 的处理多 ...

  3. java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下

    目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ...

  4. ReactJs移动端兼容问题汇总

    汽车H5使用ReactJs问题汇总 Q:安卓4.4webview显示空白? A:初步怀疑是css属性没有加前缀引发的兼容问题,但添加后发现也不行,通过webview调试后控制台输出Set is und ...

  5. C++ 通过ostringstream 实现任意类型转string

    #include <iostream> #include <string> using namespace std; int main() { ; double b = 65. ...

  6. LCT维护删除时间最晚生成树

    用来做动态图问题. 维护一棵删除时间最晚的生成树,这样好处是加入一条非树边时可以直接判断加还是不加,没有现在不加入而之后再加入的情况.要是我比你先被删,那我就完全没必要加.否则你现在就可以被删除掉.

  7. 最短路问题 Floyd+Dijkstra+SPFA

    参考博客:https://blog.csdn.net/qq_35644234/article/details/60875818 题目来源:http://acm.hdu.edu.cn/showprobl ...

  8. SVN插件和Tomcat插件地址

    SVN插件: http://subclipse.tigris.org/update_1.8.x Tomcat插件: http://tomcatplugin.sf.net/update 备注:如果svn ...

  9. json和ajax学习

    1.java对象和json字符串的转换 2.json对象list集合和json字符串转换 3.map对象和json转换

  10. shell脚本--编写CGI代码(shell结合html)以及环境变量

    实现shell和html标签混合的方式编写代码: 推荐  初始CGI ,看完大概之后,大概对cgi有个大体的印象.下面是编写混合代码的示例: #!/bin/bash #index.cgi echo & ...