SpringMVC

@RequestMapping

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

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

 

@RequestMapping的value值

  @RequestMapping的value值是一个字符串数组形式的,能够匹配多个请求地址对应的请求

 

@RequestMapping的method方法

不设置method属性,就表示不以method属性为条件(任何的请求方式都能匹配)

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

  @RequestMapping的method属性是一个RequestMapping类型的数组,表示该请求映射能够匹配多种请求方式的请求

  若当前请求的请求地址满足请求映射的value值,但是不满足method值,则浏览器报错405   Request method 'POST' not supported

 

@RequestMapping的派生注解

  处理get请求的映射:@GetMapping

  处理post请求的映射:@PostMapping

  处理put请求的映射:@PutMapping

  处理delete请求的映射:@DeleteMapping

  处理get请求的映射:@GetMapping

 

form表单中的method如果填写的不是post或者get时,无论填写的是put或者其他的值,将按get值来算

当请求映射的值不为RequestMethod.GET或者RequestMethod.POST时,浏览器将报错---->405 方法不允许(Request method 'GET' not supported)

 

@RequestMapping的params属性

  当请求参数不匹配时,浏览器报错400

@RequestMapping注解的params属性通过请求的请求参数匹配请求映射

@RequestMapping注解的params属性是一个字符串类型的数组,可以通过四种表达式设置请求参数 和请求映射的匹配关系

"param":要求请求映射所匹配的请求必须携带param请求参数

"!param":要求请求映射所匹配的请求必须不能携带param请求参数

"param=value":要求请求映射所匹配的请求必须携带param请求参数且param=value

"param!=value":要求请求映射所匹配的请求必须携带param请求参数但是param!=value

  在idea中使用     "  ?  "  传递参数会报错,但并不影响运行和使用

<a th:href="@{/testparams(username='admin',password='123456')}">
测试Request Mapping的params
</a>

<a th:href="@{/testparams?username=admin}">
测试Request Mapping的params
</a>

 

 

@RequestMapping注解的headers属性

通过请求的请求头信息匹配请求映射

 

"headers":要求请求映射所匹配的请求必须携带header请求头信息

"!headers":要求请求映射所匹配的请求必须不能携带header请求头信息

"headers=value":要求请求映射所匹配的请求必须携带header请求参数且header=value

"headers!=value":要求请求映射所匹配的请求必须携带header请求参数但是header!=value

当前请求满足@RequestMapping的method和value属性,但是不满足headers属性,此时页面显示404错误,表示资源未找到

 

@RequestMapping支持ant风格的路径(模糊风格)

?:表示任意的单个字符

*:表示0个或多个任意字符

**:表示任意的一层或者多层目录  使用时,只能使用/**/xxx的方式

 

SpringMVC支持路径中的占位符

  在RequestMapping注解的value属性中,通过占位符{xxxxxxxxx}表示传输的数据,再通过@PateVariable注解

将占位符所表示的数据赋值给控制器方法的形参

 

redirect重定向视图:

  转发可以获取请求域中的数据,重定向不可以

 

posted on 2021-09-27 21:42  倾城烟雨楼  阅读(35)  评论(0)    收藏  举报

导航