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注解 

 

Tip:通过post方式提交的表单参数可以直接使用自定义的Java对象接受。但如果前端发送的是 json字符串,则需要使用如下@RequestBody注解


三、@RequestBody

作用

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

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

接收方式:

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

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

属性:

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

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

Tip:

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

 

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


四、@ResponseBody 

作用

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

属性:

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

 

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

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


五、@RequestHeader

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

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

 

// Cookie  : JSESSIONID=E8605223EFB14A7CE9D647DBB08030FB

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


六、@PathVariable

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

示例代码如下:

//地址栏变量名字与形参的名字不同的情况,需要指定name的名字
@RequestMapping("/hello/{uid}")
public String getDetails(@PathVariable(value="uid") String id){}
posted @   danielzzz  阅读(303)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示