(三)SpringMVC之常用注解
SpringMVC的常用注解
|
注解 |
说明 |
|
@Controller |
用于说明这个类是一个控制器 |
|
@RequestMapping |
用于注释一个控制器类或者控制器类的方法 |
|
@RequestParam |
用于将指定的请求参数赋值给方法中的形参。 |
|
@PathVariable |
用户获得请求URL中的动态参数。 |
|
@RequestHeader |
用于将请求的头信息区数据映射到功能处理方法的参数上。 |
|
@CookieValue |
用于将请求的Cookie数据映射到功能处理方法的参数上。 |
|
@SessionAttributes |
用于指定Model中的某些属性转存到HttpSession对象中。 |
|
@ModelAttribute |
用于将请求参数绑定到Model对象。 |
1、 @Controller注解
@Controller用于标记一个类,使用它标记的类就是一个SpringMVC Controller对象,即一个控制器类。Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,而且使用了@RequestMapping注解的方法才是真正处理请求的处理器。为了保证Spring能找到控制器,需要完成下面两件事情:
① 在springmvc-config.xml中头文件引入spring-context(context是Spring的IOC容器,是用来调用别人的功能的)。
② 使用<context:component-scan/>元素(用于启动包扫描功能)。
2、 @RequestMapping
@RequestMapping可以用来注释一个控制器类,此时,所有方法都将映射为相对于类级别的请求。同时也可以用于注释方法。
|
属性 |
说明 |
|
value |
说明注释方法的路径名称。 |
|
method |
说明用哪些HTTP请求方式处理,如POST或GET。 |
|
consumes |
指定处理request请求的提交内容类型,仅处理为”application/jspn”类型的请求。 |
|
produces |
指定返回的内容类型,必须是request请求头中包含的类型,进处理”application/json”的请求,同时指定了返回的内容类型为”application/json”。 |
|
params |
指定request中必须包含某些参数值。 |
|
headers |
指定rquest中必须包含某些指定的header值。 |
而且请求处理方法可出现的参数类型,每个请求处理方法可以有多个不同类型的参数,请求处理方法可返回的类型也有多种。
Model和ModelAndView
a) Model或ModelMap:Spring MVC在调用处理方法之前会创建一个隐含的模型对象,作为模型数据的存储容器。如果处理方法的参数为Model或ModelMap类型,则Spring MVC会将隐含模型的引用传递给这些参数。在处理方法内部,开发者就可以通过这个参数对象访问模型中的所有数据,也可以向模型中添加新的属性数据。
在处理方法中,Model和ModelMap对象都可以使用如下方法添加模型数据:
addObject(String attributeName, Object attributeValue);
b) ModelAndView:控制器处理方法的返回值如果是ModelAndView,则其既包含模型数据信息,也包含使徒信息,这样Spring MVC将使用包含的视图对模型数据进行渲染。
在处理方法中可以使用ModelAndView对象的如下方法添加模型数据:
addObject(String attributeName, Object attributeValue);
可以通过如下方法设置视图:
setViewName(String viewName);
3、 @RequestParam
@RequestParam直接用于参数绑定,可指定如下表的属性:
|
属性 |
类型 |
是否必要 |
说明 |
|
name |
String |
否 |
指定请求头绑定的名称 |
|
value |
String |
否 |
name属性的别名 |
|
required |
Boolean |
否 |
指示参数是否必须绑定 |
|
defaultValue |
String |
否 |
如果没有传递参数而是用的默认值 |
4、 @PathVariable
@PathVariable注解可以方便地获得请求URL中的动态参数。@PathVariable注解只支持一个属性value,类型为String,表示绑定的名称,如果省略则默认绑定同名参数。
5、 @RequestHeader
@RequestHeader注解用于将请求的头信息区数据映射到功能处理方法的参数上。下表是支持的属性:
|
属性 |
类型 |
是否必要 |
说明 |
|
name |
String |
否 |
指定请求头绑定的名称 |
|
value |
String |
否 |
name属性的别名 |
|
required |
Boolean |
否 |
指定参数是否必须绑定 |
|
defaultValue |
String |
否 |
如果没有传递参数而使用的默认值 |
6、 @CookieValue
@CookieValue注解用于将请求的Cookie数据映射到功能处理方法的参数上。下表是该注解支持的属性:
|
属性 |
类型 |
是否必要 |
说明 |
|
name |
String |
否 |
指定请求头绑定的名称 |
|
value |
String |
否 |
name属性的别名 |
|
required |
Boolean |
否 |
指定参数是否必须绑定 |
|
defaultValue |
String |
否 |
如果没有传递参数而使用的默认值 |
7、 @SessionAttributes
@SessionAttributes注解允许我们有选择地制定Model中的哪些属性需要转存到HttpSession当中。@SessionAttributes只能声明在类上。下表是该注解支持的属性:
|
属性 |
类型 |
是否必要 |
说明 |
|
names |
String[] |
否 |
Model中属性的名称,即存储在HttpSession当中的属性名称 |
|
value |
String[] |
否 |
names属性的别名 |
|
types |
Class<?>[] |
否 |
指示参数是否必须绑定 |
8、 @ModelAttribute
@ModelAttribute注解将请求参数绑定到Model对象。@ModelAttribute注解只支持一个属性value,类型为String,表示绑定的属性名称。
被@ModelAttribute注解的方法会在Contorller每个方法执行前被执行,因此在一个Controller映射到多个URL时,要谨慎使用。
(三)SpringMVC之常用注解的更多相关文章
- SpringMVC的常用注解
在SpringMVC中常用的注解主要都是用于Controller上,所以下面的四大不同类型的注解都是根据它们处理的request的不同内容部分来区分的: 处理requ ...
- springMvc之常用注解介绍
@requestbody和@requestparam的用法 获取请求参数的方法 get请求: 直接获取request 如: public String getHtml(HttpServletR ...
- springmvc:常用注解
一.RequestParam注解 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须提供此参数.默认值:true.表示必 ...
- SpringMVC相关常用注解
@Controller: @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象 @RequestMapping: RequestMappin ...
- Spring和SpringMVC的常用注解
Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...
- springMVC的常用注解有哪些?
1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否 ...
- SpringMVC框架——常用注解
@RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...
- springmvc常用注解与类型转换
springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...
- SpringMVC 常用注解
本文参考了博客,具体请见:http://www.cnblogs.com/leskang/p/5445698.html Spring MVC的常用注解 1.@Controller @Controller ...
随机推荐
- web开发并部署到Tomcat上
1. eclipse配置tomcat https://jingyan.baidu.com/article/e4d08ffdabb0710fd2f60de9.html https://blog.csdn ...
- Hadoop2 使用 YARN 运行 MapReduce 的过程源码分析
Hadoop 使用 YARN 运行 MapReduce 的过程如下图所示: 总共分为11步. 这里以 WordCount 为例, 我们在客户端终端提交作业: # 把本地的 /home/hadoop/t ...
- Hadoop Shell 介绍
以 hadoop 2.7.3 为例 bin 目录下是最基础的集群管理脚本, 用户可通过该脚本完成各种功能, 如 HDFS 管理, MapReduce 作业管理等. 作为入门, 先介绍bin 目录下的 ...
- Flutter实战视频-移动电商-11.首页_屏幕适配方案讲解
11.首页_屏幕适配方案讲解 国人写的屏幕适配插件: https://github.com/OpenFlutter/flutter_screenutil 最新版本是0.5.1 在pubspec.yam ...
- 删除链表中的倒数第n个元素
示例: 输入链表:1->2->3->4->5 , 2 输出:1->2->3->5 Python解决方案1: # Definition for singly-l ...
- PhpStrom之添加文件夹至左侧目录树
1.打开编辑器,点击工具栏 File,并选择Open (File -> Open) 2.选择需要添加的文件夹路径,点击 OK 3.点击OK后弹出下图窗口(第一个选项:Open in new wi ...
- HTML5标签不兼容ie怎么办?
HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. 比较常用的HTML5的新标签元素有: <hea ...
- QRegExp解析
正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征.比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ...
- POJ3020【二分匹配】
思路: ---说给自己 一开始想的是从1-h*w标记整幅图,建图是星号和 {他,与他相连的星号} 建边,肯定要去匹配"*"啊,所以空格一定不会去造,然后就理解成了最小点覆盖,然而对 ...
- Pycharm 配置autopep8到菜单
Pycharm 可以自动检测PEP8规范. 我们可以安装autopep8来自动修改文件实现PEP8规范. 1.通过Pycharm安装autopep8 2.File->Setting->Ex ...