【springMVC 学习三】springmvc常用注解之@Controller和@RequestMapping

简介: 对于各种注解而言,排第一的当然是“@Controller”,表明某类是一个controller。 “@RequestMapping”请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。

对于各种注解而言,排第一的当然是“@Controller”,表明某类是一个controller。

“@RequestMapping”请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Controller
@RequestMapping (value= "/book" )
public class BookController {
     
     @RequestMapping (value= "/title" )
     public String getTitle(){
         return "title" ;
     }
     
     @RequestMapping (value= "/content" )
     public String getContent(){
         return "content" ;
     }
}

由于BookController类加了value="/book"的“@RequestMapping”的注解,所有相关路径都要加上"/book",即请求的url分别为:

  1. http://localhost:8080/book/title
  2. http://localhost:8080/book/content

"@RequestMapping"的value值前后是否有“/”对请求的路径没有影响,即value="book" 、"/book"、"/book/"其效果是一样的


"@RequestMapping" 的属性

  • value: 指定请求的实际url
    1. 普通的具体值。如前面的value="/book"。
    2. 含某变量的一类值

    1
    2
    3
    4
    5
    @RequestMapping (value= "/get/{bookId}" )
         public String getBookById( @PathVariable String bookId,Model model){
             model.addAttribute( "bookId" , bookId);
             return "book" ;
         }

    路径中的bookId可以当变量,@PathVariable 注解即提取路径中的变量值

    3.ant风格
    @RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
    @RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
    @RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
    @RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant风格和URI模板变量风格可混用;

    4. 含正则表达式的一类值
    @RequestMapping(value="/get/{idPre:\\d+}-{idNum:\\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,这样可以设计更加严格的规则。
    可以通过@PathVariable 注解提取路径中的变量(idPre,idNum)

    5. 或关系
    @RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都会映射到该方法上

  • method:  指定请求的method类型, GET、POST、PUT、DELETE等;
    @RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})

  • params
    @RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del

  • headers
    @RequestMapping(value="/header/id", headers = "Accept=application/json"):表示请求的URL必须为“/header/id 且 请求头中必须有“Accept =application/json”参数即可匹配。
相关文章
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
112 0
|
JSON 前端开发 Java
SpringMVC系列(二)之常用注解介绍及参数传递说明
SpringMVC系列(二)之常用注解介绍及参数传递说明
|
13天前
|
前端开发 Java Spring
Spring MVC核心:深入理解@RequestMapping注解
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的核心,它将HTTP请求映射到控制器的处理方法上。本文将深入探讨`@RequestMapping`注解的各个方面,包括其注解的使用方法、如何与Spring MVC的其他组件协同工作,以及在实际开发中的应用案例。
28 4
|
13天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
38 2
|
13天前
|
前端开发 Java Spring
探索Spring MVC:@Controller注解的全面解析
在Spring MVC框架中,`@Controller`注解是构建Web应用程序的基石之一。它不仅简化了控制器的定义,还提供了一种优雅的方式来处理HTTP请求。本文将全面解析`@Controller`注解,包括其定义、用法、以及在Spring MVC中的作用。
31 2
|
13天前
|
前端开发 Java 开发者
Spring MVC中的控制器:@Controller注解全解析
在Spring MVC框架中,`@Controller`注解是构建Web应用程序控制层的核心。它不仅简化了控制器的定义,还提供了灵活的请求映射和处理机制。本文将深入探讨`@Controller`注解的用法、特点以及在实际开发中的应用。
30 0
SpringMVC入门到实战------3、@RequestMapping注解(超详细基础知识+实际代码案例)
该博客文章详细介绍了SpringMVC中`@RequestMapping`注解的使用方法,包括其功能、位置、value属性、method属性、params属性、headers属性以及支持的路径风格和占位符,并通过实际代码案例展示了如何建立请求与控制器方法之间的映射关系。
SpringMVC入门到实战------3、@RequestMapping注解(超详细基础知识+实际代码案例)
|
7月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
165 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
|
缓存 前端开发 Java
【SpringMVC】JSR 303与拦截器注解使用
【SpringMVC】JSR 303与拦截器注解使用
74 0
|
前端开发 Java Spring
Spring MVC拦截器+注解方式实现防止表单重复提交
Spring MVC拦截器+注解方式实现防止表单重复提交
103 0