学科分类
目录
SSM框架

@RequestMapping注解的使用

Spring通过@Controller注解找到相应的控制器类后,还需要知道控制器内部对每一个请求是如何处理的,这就需要使用org.springframework.web.bind.annotation.RequestMapping注解类型。@RequestMapping注解类型用于映射一个请求或一个方法,其注解形式为@RequestMapping,可以使用该注解标注在一个方法或一个类上。

1.标注在方法上

当标注在一个方法上时,该方法将成为一个请求处理方法,它会在程序接收到对应的URL请求时被调用。使用@RequestMapping注解标注在方法上的示例如下:

package com.itheima.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
...
@Controller
public class FirstController{
    @RequestMapping(value="/firstController")
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) {
         ...
        return mav;
    }
}

使用@RequestMapping注解后,上述代码中的handleRequest()方法就可以通过地址:http://localhost:8080/chapter12/firstController进行访问。

2.标注在类上

当标注在一个类上时,该类中的所有方法都将映射为相对于类级别的请求,表示该控制器所处理的所有请求都被映射到value属性值所指定的路径下。使用@RequestMapping注解标注在类上的示例如下:

package com.itheima.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
...
@Controller
@RequestMapping(value="/hello")
public class FirstController{
    @RequestMapping(value="/firstController")
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response){
         ...
        return mav;
    }
}

由于在类上添加了@RequestMapping注解,并且其value属性值为“/hello”,所以上述代码方法的请求路径将变为:http://localhost:8080/chapter12/hello/firstController。如果该类中还包含其他方法,那么在其他方法的请求路径中也需要加入“/hello”。

点击此处
隐藏目录