@requestMapping
2018-08-29 09:13 colorfu 阅读(267) 评论(0) 编辑 收藏 举报转自https://blog.csdn.net/kobejayandy/article/details/12690041
Spring通过@Controller注解找到相应的控制器类后,还需要知道控制器内部对每一个请求是如何处理的,这就需要使用@RequestMapping注解类型,它用于映射一个请求或一个方法。使用时,可以标注在一个方法或一个类上。
1. 标注在方法上:作为请求处理方法在程序接收到对应的URL请求时被调用:
-
package com.itheima.controller;
-
import org.springframework.stereotype.Controller;
-
import org.springframework.web.bind.annotation.RequestMapping;
-
...
-
-
public class FirstController{
-
-
public ModelAndView handleRequest(HttpServletRequest request,
-
HttpServletResponse response) {
-
...
-
return mav;
-
}
-
}
此时,可以通过地址:http://localhost:8080/chapter12/firstController访问该方法!
2. 标注在类上:该类中的所有方法都将映射为相对于类级别的请求,表示该控制器所处理的所有请求都被映射到value属性值所指定的路径下。
-
package com.itheima.controller;
-
import org.springframework.stereotype.Controller;
-
import org.springframework.web.bind.annotation.RequestMapping;
-
...
-
-
-
public class FirstController{
-
-
public ModelAndView handleRequest(HttpServletRequest request,
-
HttpServletResponse response) {
-
...
-
return mav;
-
}
-
}
由于在类上添加了@RequestMapping注解,并且其value属性值为“/hello”,所以上述代码方法的请求路径将变为:http://localhost:8080/chapter12/hello/firstController。
@RequestMapping注解除了可以指定value属性外,还可以指定其他一些属性,如下表所示。
表中所有属性都是可选的,但其默认属性是value。当value是其唯一属性时,可以省略属性名。下面两种标注的含义相同:
@RequestMapping(value="/firstController")
@RequestMapping("/firstController")