springMVC之RequestMapping注解之基础属性

115 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第27天,点击查看活动详情

在学习springMVC时,我们常常会使用@RequestMapping注解,如:

@RequestMapping(vaLue = "/target")
pubLic String toTarget(){
    //视图名称
    return "target" ;
}

本篇文章详细说明@RequestMapping注解的基础属性

@RequestMapping注解的功能

从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。

@RequestMapping注解的value属性

作用:通过请求的请求路径匹配请求

-value属性是数组类型,即当前浏览器所发送的请求路径匹配value属性中任何一个值,则当前请求就会被注解所标识的方法进行处理

SpringMVC接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

假如有个控制器为: @RequestMapping("/test"), 当接收到SpringMVC/test请求时,就会来找到在映射关系中对应的控制器方法来处理这个请求。

@RequestMapping注解的位置

  • @RequestMapping标识一个类: 设置映射请求的请求路径的初始信息

  • @RequestMapping标识一个方法: 设置映射请求请求路径的具体信息

比如:


@Controller
@RequestMapping("/test")
public class Hellocontronller {
   @RequestMapping(value = "/index")
   public String index(){
//        返回视图名称
       return "index";
   }

}

该注解就是标识一个类和一个方法,当我们的路径为http://localhost:8080/test/index时就会返回index.html的界面。

@RequestMapping注解的method属性

@RequestMapping注解的method属性通过请求的请求方式 (get或post) 匹配请求映射

@RequestMapping注解的method属性是一个RequestMethod类型的数组, 表示该请求映射能够匹配多种请求方式的请求 若当前请求的请求地址满足请求映射的value属性,但是请求方式不满足method属性,则浏览器报错405: Request method 'POST' not supported

注:

1、对于处理指定请求方式的控制器方法,SpringMVC中提供了@RequestMapping的派生注解

  • 处理get请求的映射-->@GetMapping

  • 处理post请求的映射->@PostMapping

  • 处理put请求的映射-->@PutMapping

  • 处理delete请求的映射-->@DeleteMapping

2、常用的请求方式有get, post, put, delete

但是目前浏览器只支持get和post,若在form表单提交时,为method设置了其他请求方式的字符串(put或 delete),则按照默认的请求方式get处理 若要发送put和delete请求,则需要通过spring提供的过滤器HiddenHttpMethodFilter