SSM-WebMVC(三)
SSM-WebMVC(三)
一、Annotated Controllers
应用程序控制器
handlerMethod(处理方法)
㈠方法入参
(springmvc针对于在controller里的方法参数,传入实参对象),处理接口(HandlerMethodArgumentResolver)
1.javax.servlet.ServletRequest, javax.servlet.ServletResponse
2.javax.servlet.http.HttpSession
3.InputStream ,OutputStream,Reader ,Writer
4.@PathVarable
1.路径变量的值会付给方法中形参的值
2.@GetMapping("/owners/{ownerId}/pets/{petId}")
public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
// ...
}
5.@RequestParam
将请求参数付给形参
6.@CookieValue
1.将指定cookie中的值付给形参
2.defaultValue属性用于指定默认值
7.@RequestBody
将请求体的内容绑定到参数对象上
请求体可以通过 request.getInputStream拿到
8.java.util.Map, org.springframework.ui.Model, org.springframework.ui.ModelMap
都会统一放到request作用域当中
9.@ModelAttribute
1.作用在参数上
指定的参数会被自动存放于model当中
2.作用在方法上
指定的返回值会被自动添加至Model当中
3.解析顺序
From the model if already added by using Model(优先使用Model中存在的值)
From the HTTP session by using @SessionAttributes
From a URI path variable passed through a Converter
10.BindingResult
针对于JavaBean的属性验证,来确保对象属性的合法性
该对象代表本次的验证结果
常见的方法
hasErrors
getFieldError
11.@Valid
用来指定需要验证的JavaBean
注解后需要紧跟着BindingResult类型
12.@SessionAttribute
13.@RequestAttribute
㈡方法返回值
(HandlerMethodReturnValueHandler接口处理,应用程序控制器的方法返回值)
1.String
返回逻辑视图
2.ResponseEntity
在@Controller下,将返回值添加到响应体当中,类似于@ResponseBody
3.void
将请求路径作为逻辑视图名
4.DeferredResult
5.Callable
5、6用于springmvc的异步处理
6.ModelAndView
但凡涉及到逻辑视图的处理,终将统一解析成ModelAndView
7.Map
8.自定义类型
二、DataBinder
将请求参数或数据绑定到对应入参对象(自定义对象)或者解决复杂类型的数据绑定
@InitBinder
public void initBinder(WebDataBinder webDataBinder)
实现Formatter接口
注册添加
通过WebDataBinder的addCustomFormatter方法添加
三、Asynchronous Requests
servlet中的异步
@WebServlet(asyncSupported=true)
request.startAsync()
AsyncContext
1.start(Runnable runnable)
2.addListener()
监听异步的事件
AsyncListener
onComplete
onTimeout
onError
onStartAsync
3.getRequest
4.getResponse
SSM-WebMVC(三)的更多相关文章
- SSM整合(三):Spring4与Mybatis3与SpringMVC整合
源码下载 SSMDemo 上一节整合了Mybatis3与Spring4,接下来整合SpringMVC! 说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目! 本节全部采用 ...
- SSM框架三分钟搞定分页查询
使用的国产第三方jar pagehelper 里面的基本属性值 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 ...
- [SSM项目]三-日志Logback
Logback介绍 Logback的主要模块 logback-access :与service容器集成,提供通过http访问日志的功能.即第三方软件可以通过这个模块来访问日志. logback-cla ...
- 【Java】SSM框架整合 附源码
前言 前面已经介绍Spring和Mybatis整合,而本篇介绍在IDEA下Spring.Spring MVC.Mybatis(SSM)三个框架的整合,在阅读本篇之前,建议大家先去了解一下Spring. ...
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第二天(非原创)
文章大纲 一.课程介绍二.整合淘淘商城ssm项目三.Mybatis分页插件PageHelper使用四.整合测试五.项目源码与资料下载六.参考文章 一.课程介绍 一共14天课程(1)第一天:电商行业 ...
- Java WEB框架——SSM之Hello world
一.建立项目 先搭建一个webapp项目(要选creat from arctype) 起名 选择maven路径,settings.xml那里要选择override才可以在资源管理器中浏览.接下来直接N ...
- Navi.Soft30.产品.DataWindowNet.操作手册
1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才成就了SQLServer数据库.PB开发 ...
- DataWindow.Net组件示例(全部开源)
1概述 1.1功能简介 Sybase公司的PowerBuilder开发工具,在以前VS工具没有成事以前,是相当风光的.微软都要与其合作,学习它Db方面的技术,才成就了SQLServer数据库.PB开发 ...
- spring boot 集成 Mybatis,JPA
相对应MyBatis, JPA可能大家会比较陌生,它并不是一个框架,而是一组规范,其使用跟Hibernate 差不多,原理层面的东西就不多讲了,主要的是应用. Mybatis就不多说了,SSM这三个框 ...
- SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射
前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...
随机推荐
- ios常用到的第三方库
在iOS开发中不可避免的会用到一些第三方类库,它们提供了很多实用的功能,使我们的开发变得更有效率:同时,也可以从它们的源代码中学习到很多有用的东西. Reachability 检测网络连接 用来检查网 ...
- maven依赖排除
单依赖过滤 同依赖过滤直接处理:可以过滤一个或者多个,如果过滤多个要写多个<exclusion>. <dependency> <groupId>org.apache ...
- Linux 内核源码中likely()和unlikely()【转】
本文转载自:http://blog.csdn.net/tigerjibo/article/details/8279183 ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们 ...
- html5--6-4 CSS选择器
html5--6-4 CSS选择器 实例 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候,这条样式会作用于网页当中的某些元素,所谓选择器就是样式作用 ...
- maven实战(5)-- settings.xml的配置
哈哈 查看maven的官方文档最权威:http://maven.apache.org/settings.html
- codeforces 665E E. Beautiful Subarrays(trie树)
题目链接: E. Beautiful Subarrays time limit per test 3 seconds memory limit per test 512 megabytes input ...
- 哈希加密和MD5加密函数
import hashlib #----------------------------MD5算法 # def Md5(n): # m = hashlib.md5() # m=hashlib.sha2 ...
- 洛谷 - P2774 - 方格取数问题 - 二分图最大独立点集 - 最小割
https://www.luogu.org/problemnew/show/P2774 把两个相邻的节点连边,这些边就是要方便最小割割断其他边存在的,容量无穷. 这种类似的问题的话,把二分图的一部分( ...
- python string类型 bytes类型 bytearray类型
一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode的序列. ...
- locate的基本用法
一.工作原理 1. locate是通过读取一个或多个由updatedb命令生成的数据库来查找文件的,而updatedb由计划任务程序cron每天运行来更新缺省的数据库(/var/lib/mlocate ...