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操作数据库需要的一些组成部分(配置 ...
随机推荐
- linux内核的三种主要调度策略
linux内核的三种主要调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用, ...
- FZU1977 Pandora adventure —— 插头DP
题目链接:https://vjudge.net/problem/FZU-1977 Problem 1977 Pandora adventure Accept: 597 Submit: 2199 ...
- 适配器、工厂模式、线程池、线程组、互斥锁、Timer类、Runtime类、单例设计模式(二十四)
1.多线程方法 * Thread 里面的俩个方法* 1.yield让出CPU,又称为礼让线程* 2.setPriority()设置线程的优先级 * 优先级最大是10,Thread.MAX_PRIORI ...
- async-await原理解析
在用async包裹的方法体中,可以使用await关键字以同步的方式编写异步调用的代码.那么它的内部实现原理是什么样的呢?我们是否可以自定义await以实现定制性的需求呢?先来看一个简单的例子: cla ...
- java内存管理--栈、堆和常量池
今天有朋友问java中String[] str = s.split(",")的内存分析,于是开始查资料并测试.首先,发现在java的内存管理中"常量池"是个很奇 ...
- BZOJ_2251_[2010Beijing Wc]外星联络_后缀数组
BZOJ_2251_[2010Beijing Wc]外星联络_后缀数组 Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻 找外星人的 ...
- AtCoder Beginner Contest 057
A题 分析:24进制转换 #include<iostream> using namespace std; int main() { int a,b; while(cin>>a& ...
- [AHOI 2005] 航线规划
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1969 [算法] 首先离线 , 将删边操作转化为加边操作 不妨首先将这张图按边-双连通 ...
- Python Web开发最难懂的WSGI协议,到底包含哪些内容?
原文出处: PythonScientists 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有开发者希望马上给自己做个博客出来,例如我),既然是WEB,免不了接触到一些WEB框架, ...
- pkill详解
pkill详解 一:含义: 是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序:如果您想杀掉单个进程,请用kill来杀掉. 二 ...