Spring mvc注解说明
|
编号 |
注解 |
说明 |
位置 |
备注 |
|
1 |
@Controller |
将类变成Spring Bean |
类 |
现阶段 @Controller 、 @Service 以及 @Repository 和 @Component 注解的作用是等价的 |
|
2 |
@RequestMapping |
请求映射 |
类、方法 |
标注在类上意指类实现 Controller 接口 标注在方法上意指扩展 Spring 预定义 Controller ( 如:SimpleFormController) |
|
3 |
@RequestParam |
入参绑定 URL |
入参 |
指定 URL 参数与方法入参的绑定规则 |
|
4 |
@SessionAttributes |
设定 Session范围属性 |
类 |
如: @SessionAttributes("user") ,将把 ModelMap 中的 user 属性添加到 Session 范围 |
|
5 |
@InitBinder |
注册Controller 级的自定义属性编辑器 |
方法 |
@InitBinder 注解的方法必须拥有一个 WebDataBinder 类型的入参,以便 Spring MVC 框架将注册属性编辑器的 WebDataBinder 对象传递进来 |
|
6 |
@ModelAttribute |
准备引用数据/ 将 ModelMap属性绑定到入参 |
方法、入参 |
标注在方法上:准备引用数据 标注在入参上:将 ModelMap 中的属性绑定到请求处理方法的入参中 |
再来看一下Controller中方法的入参类型:
|
编号 |
请求处理方法入参的可选类型 |
说明 |
|
1 |
Java 基本数据类型和 String |
默认情况下将按名称匹配的方式绑定到 URL 参数上,可以通过 @RequestParam注解改变默认的绑定规则 |
|
2 |
request/response/session |
既可以是 Servlet API 的也可以是 Portlet API 对应的对象, Spring 会将它们绑定到 Servlet 和 Portlet 容器的相应对象上 |
|
3 |
org.springframework.web.context.request.WebRequest |
内部包含了 request 对象 |
|
4 |
java.io.InputStream/java.io.Reader |
可以借此访问 request 的内容 |
|
5 |
java.io.OutputStream / java.io.Writer |
可以借此操作 response 的内容 |
|
6 |
任何标注了 @RequestParam 注解的入参 |
被标注 @RequestParam注解的入参将绑定到特定的request 参数上。 |
|
7 |
java.util.Map / org.springframework.ui.ModelMap |
它绑定 Spring MVC 框架中每个请求所创建的潜在的模型对象,它们可以被 Web视图对象访问(如 JSP ) |
|
8 |
命令 / 表单对象(注:一般称绑定使用 HTTP GET 发送的URL 参数的对象为命令对象,而称绑定使用 HTTP POST发送的 URL 参数的对象为表单对象) |
它们的属性将以名称匹配的规则绑定到 URL 参数上,同时完成类型的转换。而类型转换的规则可以通过@InitBinder 注解或通过HandlerAdapter 的配置进行调整 |
|
9 |
org.springframework.validation.Errors / org.springframework.validation.BindingResult |
为属性列表中的命令 / 表单对象的校验结果,注意检验结果参数必须紧跟在命令 /表单对象的后面 |
|
10 |
rg.springframework.web.bind.support.SessionStatus |
可以通过该类型 status 对象显式结束表单的处理,这相当于触发 session 清除其中的通过@SessionAttributes 定义的属性 |
再来看一下Controller中方法的返回类型:
|
编号 |
请求处理方法入参的可选类型 |
说明 |
|
1 |
void |
此时逻辑视图名由请求处理方法对应的URL 确定,如以下的方法: @RequestMapping("/welcome.do") public void welcomeHandler() { } 对应的逻辑视图名为“ welcome ” |
|
2 |
String |
此时逻辑视图名为返回的字符,如以下的方法: @RequestMapping(method = RequestMethod.GET) public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) { Owner owner = this.clinic.loadOwner(ownerId); model.addAttribute(owner); return "ownerForm"; } 对应的逻辑视图名为“ ownerForm ” |
|
3 |
org.springframework.ui.ModelMap |
和返回类型为 void 一样,逻辑视图名取决于对应请求的 URL ,如下面的例子: @RequestMapping("/vets.do") public ModelMap vetsHandler() { return new ModelMap(this.clinic.getVets()); } 对应的逻辑视图名为“ vets ”,返回的ModelMap 将被作为请求对应的模型对象,可以在 JSP 视图页面中访问到。 |
|
4 |
org.springframework.web.servlet.ModelAndView |
当然还可以是传统的 ModelAndView 。 |
Spring mvc注解说明的更多相关文章
- Spring MVC注解的一些案列
1. spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding=& ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- spring mvc 注解入门示例
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- spring mvc 注解示例
springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- 关于Spring mvc注解中的定时任务的配置
关于spring mvc注解定时任务配置 简单的记载:避免自己忘记,不是很确定我理解的是否正确.有错误地方望请大家指出. 1,定时方法执行配置: (1)在applicationContext.xml中 ...
- spring mvc 注解@Controller @RequestMapping @Resource的详细例子
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- spring mvc 注解 学习笔记(一)
以前接触过spring,但是没有接触spring mvc 以及注解的应用,特习之,记之: 注解了解 @Component 是通用标注, @Controller 标注web控制器, @Service 标 ...
- Spring MVC 注解[转]
[学习笔记]基于注解的spring3.0.x MVC学习笔记(九) 摘要: 本章节,仅为@SessionAttributes的功能扩展介绍介绍,结合@requestparam注解进行简易无数据库分页. ...
- junit4测试 Spring MVC注解方式
本人使用的为junit4进行测试 spring-servlet.xml中使用的为注解扫描的方式 <?xml version="1.0" encoding="UTF- ...
- [转]spring mvc注解方式实现向导式跳转页面
由于项目需要用到向导式的跳转页面效果,本项目又是用spring mvc实现的,刚开始想到用spring 的webflow,不过webflow太过笨重,对于我们不是很复杂的跳转来说好像有种“杀鸡焉用牛刀 ...
随机推荐
- Vue.nextTick 的原理和用途
转载自https://segmentfault.com/a/1190000012861862 概览 官方文档说明: 用法: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法 ...
- 教你搭建基于typescript的vue项目
自尤大去年9月推出vue对typescript的支持后,一直想开箱尝试,对于前端sr来说,vue的顺滑加上ts的面向对象,想着就非常美好~ 终于在两个月前,找到了个机会尝试了一把vue+ts的组合. ...
- 2019-11-29-C#-序列类为-xml-可以使用的特性大全
title author date CreateTime categories C# 序列类为 xml 可以使用的特性大全 lindexi 2019-11-29 8:59:2 +0800 2018-6 ...
- Nginx进行UDP的负载均衡
准备工作: 服务器1:192.168.33.102 搭建nginx服务,作为反向代理的中转站 服务器2:192.168.33.103 nginx要反向代理的服务器 一.在服务器1上搭建n ...
- php正则替换非站内链接 替换zencart描述内的非本站链接
php正则替换非站内链接 <?php //要替换的文本,比如产品描述中的文字 header("content-Type: text/html; charset=utf-8") ...
- CodeForces - 841D Leha and another game about graph
给出一个连通图,并给每个点赋一个d值0或1或-1,要求选出一个边的集合,使得所有的点i要么d[i] == -1,要么 dgree[i] % 2 == d[i],dgree[i]代表i结点的度数. 考虑 ...
- 用 Webpack 解决应用性能问题
1. 影响页面加载时长的 Top3 因素 页面初载时,加载大量 JavaScript 脚本: 页面初载时,加载大量 CSS 文件: 页面初载时,加载大量网络资源: 页面加载的越久,页面不可交互的时间就 ...
- 拦截器HandlerInterceptor内部也可以注入bean,代码纠正补充
原文地址https://www.jianshu.com/p/890c23a1b3d7 原文内容 1.拦截器内无法通过SpringBean的方式注入LoggerJPA,我只能通过另外一种形式. priv ...
- 图形计算器(geogebra[5.0.278.0])使用QQ浏览器打开下载
点击这里下载Geogebra图形计算器
- maven pom文件标签含义
1.dependency里面的scope dependency里面的classifier dependency里面的type dependency里面的systemPath dependency里面的 ...