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之常用注解的更多相关文章

  1. SpringMVC的常用注解

             在SpringMVC中常用的注解主要都是用于Controller上,所以下面的四大不同类型的注解都是根据它们处理的request的不同内容部分来区分的:         处理requ ...

  2. springMvc之常用注解介绍

    @requestbody和@requestparam的用法  获取请求参数的方法 get请求: 直接获取request    如: public String getHtml(HttpServletR ...

  3. springmvc:常用注解

    一.RequestParam注解 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须提供此参数.默认值:true.表示必 ...

  4. SpringMVC相关常用注解

    @Controller: @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象 @RequestMapping: RequestMappin ...

  5. Spring和SpringMVC的常用注解

    Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...

  6. springMVC的常用注解有哪些?

    1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否 ...

  7. SpringMVC框架——常用注解

    @RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...

  8. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

  9. SpringMVC 常用注解

    本文参考了博客,具体请见:http://www.cnblogs.com/leskang/p/5445698.html Spring MVC的常用注解 1.@Controller @Controller ...

随机推荐

  1. codevs-1205

    1205 单词翻转 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子. 输出描述 Output ...

  2. 3-8 & 3-9Unicode 编码

    3-9Unicode 编码 主要支持英文字母和一些特殊字符,中文不支持, 为了支持世界上所有的字符集 就是Unicode编码的出现 char c='\u005d';表示十六进制的. c表示一个尖括号:

  3. (水题)Codeforces - 4C - Registration system

    https://codeforces.com/problemset/problem/4/C 用来哈希的一道题目,用map也可以强行过,但是性能慢了6倍,说明是在字符串比较的时候花费了接近6倍的时间. ...

  4. 分解gif图片并保存

    /** Gif的步骤 1. 拿到Gifd的数据 2. 将Gif分解为一帧帧 3. 将单帧数据转为UIImage 4. 单帧图片保存 */ #import <ImageIO/ImageIO.h&g ...

  5. Android之打包签名

    一.什么的是打包? 打包就是根据签名和其他标识生成安装包. 二.什么是签名? 1.在android应用文件(apk)中保存的一个特别字符串 2.用来标识不同的应用开发者:开发者A,开发者B 3.一个应 ...

  6. Lightoj 1008【规律】

    25 24 23 22 21 10 11 12 13 20 9 8 7 14 19 2 3 6 15 18 1 4 5 16 17 然后把这个转化成: 17 18 19 20 21 10 11 12 ...

  7. CentOS Linux 7 提示 lsof: 未找到命令

    我们常使用 lsof -i:端口号 命令来查看某端口是否开放,如使用下面的命令,查看8080端口: lsof -i: 结果: 提示:lsof:未找到命令 解决办法 使用yum来安装lsof,命令如下: ...

  8. bzoj 4464: [Jsoi2013]旅行时的困惑【贪心】

    据说正解是有上下界最小流,但是这种1e5的玩意问什么要跑网络流啊-- 贪心即可,注意一点是可以有多条路径经过一条边-- 以1为根,设d[u][0/1]为u到父亲的边是向下/向上,g记录这个点儿子中不能 ...

  9. 始终要覆盖toString

    始终要覆盖toString   虽然java.lang.Object提供了toString方法的一个实现,但它返回的字符串通常并不是类的用户所期望看到的.它包含类的名称,以及一个"@&quo ...

  10. 【UVA - 10815】Andy's First Dictionary (set)

    Andy's First Dictionary Description 不提英文了 直接上中文大意吧 XY学长刚刚立下了再不过CET就直播xx的flag,为了不真的开启直播模式,XY学长决定好好学习英 ...