@RequestMapping注解用于建立请求URL和Handler(处理器)之间的映射关系,该注解可以标注在方法上和类上。下面分别对@RequestMapping注解的这两种使用方式进行介绍。
当@RequestMapping注解标注在方法上时,该方法就成了一个可以处理客户端请求的Handler(处理器),它会在Spring MVC接收到对应的URL请求时被执行。Handler在浏览器中对应的访问地址,由项目访问路径+处理方法的映射路径共同组成。
接下来通过一个案例演示@RequestMapping注解标注在方法上的使用。
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- @Controller
- public class FirstController {
- @RequestMapping(value="/firstController")
- public void sayHello() {
- System.out.println("hello Spring MVC");
- }
- }
hello Spring MVC
由运行结果可知,sayHello()方法被成功执行,说明@RequestMapping注解标注在方法上时,成功建立了请求URL和处理请求方法之间的对应关系。
当@RequestMapping注解标注在类上时,@RequestMapping的value属性值相当于本处理器类的命名空间,即访问该处理器类下的任意处理器都需要带上这个命名空间。@RequestMapping标注在类上时,其value属性值作为请求URL的第一级访问目录。当处理器类和处理器都使用@RequestMapping注解指定了对应的映射路径,处理器在浏览器中的访问地址,由项目访问路径+处理器类的映射路径+处理器的映射路径共同组成。
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
-
- @Controller
- @RequestMapping(value="/springMVC")
- public class FirstController {
- @RequestMapping(value="/firstController")
- public void sayHello() {
- System.out.println("hello Spring MVC");
- }
- }
hello Spring MVC
由运行结果可知, sayHello()方法被成功执行,说明@RequestMapping注解标注在类上时,成功建立了请求URL和处理请求类之间的对应关系。