springmvc注解

一、@RequestMapping

作用:  

  用来设置处理器中方法的访问地址

出现位置:  

  用在方法和类上面

  • 类:相当于一个模块的访问地址(基准路径)
  • 方法:指定这个方法的访问地址 

请求方式:

  在没有设置具体属性时,GET或POST都可

属性:

  1.   path / value :指定访问地址 , 如 path = "/save"
  2.   method: 限制请求的方法,如 method = RequestMethod.GET。如果被限制会出现405错误
  3.   param: 限制提交的参数, 如 params = {"id","name"} 必须有这两个参数的名字,否则会出现400错误;params = {"id=1","name=newboy"} 不但要有这些参数,而且值还有限制; params = {"id!=1"} id不等于1的值都可以             
  4.   consumers:属性用于指定处理请求的提交内容类型(Content-Type)如 @RequestMapping(value = "toUser",consumes = "application/json")。
  5.   produces 属性用于指定返回的内容类型,返回的内容类型必须是 request 请求头(Accept)中所包含的类型。如 @RequestMapping(value = "toUser",produces = "application/json") 除此之外,produces 属性还可以指定返回值的编码。如 @RequestMapping(value = "toUser",produces = "application/json,charset=utf-8"),表示返回 utf-8 编码。

 注:多个属性之间使用逗号隔开;在整个 Web 项目中,@RequestMapping 映射的请求信息必须保证全局唯一。

二、@RequestParam

作用:

  放在方法的参数前面,用于提交的参数名与方法的形参名不同的情况;

  如果加上了此注解,但是请求的时候没有提供参数:  

  1. int基本数据类型: 如果没有赋值会出现500

  2. Integer包装数据类型: 如果没有赋值会为NULL

属性:

  name/value : 指定提交的参数名

  required : 默认是true,表示这个参数必须要有,如果没有提供报400 , 避免报错可设置为: required = false

  defaultValue: 如果没有指定值,默认是NULL,可以给它指定一个默认值 ,如 defaultValue = "daniel"

 注: 控制器方法中参数可以直接封装简单类型(8种基本类型+字符串),

  前提:

  1. 方法的参数名与请求的参数名要相同 (不同就要加@RequestParam 注解), get/post请求都可

  2. 尽量使用包装类可以减少错误的发生

  3. 简单类型的集合(List/Map)不能直接绑定,必须要在方法形参的前面加上@RequestParam注解

三、@RequestBody

作用:

  放在方法的参数前面, 用于获取请求体的数据 , 只能用于POST请求,因为GET请求没有请求体, 使用GET请求会出现400错误;

  可以把前端发送的json字符串 转换为 java对象

接收方式:

  方式一 :  使用自定义对象接收;

  方式二 :  使用Map集合对象接收

属性:

  required :  默认是true,请求体中的数据是必须要有 

  如 : @RequestBody(required = false) 这样如果没有请求体,它的值为NULL,不会出现400错误

即 :

如果参数是放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到;
如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或
则形参前 什么也不写也能接收。

注: 前端不能使用 get 方法从浏览器里发送 body. 但后端应用通常可以发送. 比如 node.js 或 postman 。

四、@ResponseBody 

作用:

  放在方法上或方法返回值前, 用于是把控制器方法的返回值转换为json字符串

属性:

  produces : 用于指定返回的数据格式

注:方法的返回值可以是任何封装数据的对象:实体类,List集合, Map集合等

在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

五、@RequestHeader

作用:用于获取请求头的值

  如: @RequestHeader("Accept-Encoding")  把Request请求header部分的值绑定到方法的参数上

// Cookie  : JSESSIONID=E8605223EFB14A7CE9D647DBB08030FB

注: @CookieValue("JSESSIONID")   可以直接把JSESSIONID的值绑定到方法参数上。

六、@PathVariable

 作用:从路径上获取参数值,即使用RESTful操作资源 

代码如下:
//地址栏变量名字与形参的名字不同的情况,需要指定name的名字
@RequestMapping("/hello/{uid}")
public String getDetails(@PathVariable(value="uid") String id){}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值