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
最新文章
- Python 学习笔记(6)--常用模块(2)
- VS2015 Apache Cordova第一个Android和IOS应用
- idea_IDEA跑Tomcat异常
- SpringMVC学习记录
- hadoop错误org.apache.hadoop.yarn.exceptions.YarnException Unauthorized request to start container
- WPF Customize TabControl
- windows平台使用Microsoft Visual C++ Compiler for Python 2.7编译python扩展
- 团队项目中js冲突
- Xamarin自定义布局系列——ListView的一个自定义实现ItemsControl(横向列表)
- 1.怎样控制div中的图片居中
- tomcat websocket 实现网页在线即时聊天
- 201521123061 《Java程序设计》第四周学习总结
- Redis 学习笔记2:redis.conf配置文件详解
- Ajax - Apache安装配置
- Java 7 for Absolute Beginners/Java 7基础教程--读后感
- 在 sql 语句出现 warning 之后,立刻执行 `show warnings;` 就可以看到 warning 提示信息
- Jquery的jqzoom插件的使用(图片放大镜)
- JavaWeb:c3p0配置问题-----java.sql.SQLException: Connections could not be acquired from the underlying database!
- nodejs项目进程管理器之pm2
- .2-浅析express源码之applicaiton模块(1)-咸鱼方法
热门文章
- springboot如何使用外部tomcat容器
- Vue源码探究-源码文件组织
- 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)
- chan
- Scrapy运行报错:ModuleNotFoundError: No module named 'douban.douban'
- Mysql语句示例
- ImportError: No module named 'httplib'
- 哈希表的C实现(二)
- 【总结——HTTP协议】
- leetcode 字符串动态规划总结