@RequestMapping 使用须知

使用 @RequestMapping 注解映射请求路径 :

        你可以使用 @RequestMapping 注解来将请求 URL 映射到整个类上或 某个特定的方法上,即 @RequestMapping 既可以定义在类上,也可以定义方法上。

        一般来说,类级别的注解负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的注解来细化映射,根据特定的 HTTP 请求方法(GET、POST 方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。

具体配置方法:

 1. 映射单个 URL

@RequestMapping("") 或 @RequestMapping(value="")

2. 映射多个 URL

@RequestMapping({"",""}) 或 @RequestMapping(value={"",""})

路径开头是否加斜杠 / 均可,建议加上,如:@RequestMapping("/hello")

 @RequestMapping 一共有五种映射方式:

 1. 标准 URL 映射

   标准 URL 映射是最简单的一种映射,例如:    

@RequestMapping("/hello")
或
@RequestMapping({"/hello","/world"})

   2. Ant 风格的 URL 映射

       Ant 通配符有三种:  

通配符

说明

?

匹配任何单字符

*

匹配任意数量的字符(含 0 个)

**

匹配任意数量的目录(含 0 个)

例如:
(1)@RequestMapping("/?/hello/")
(2)@RequestMapping("/*/hello")
(3)@RequestMapping("/**/hello")

  3. 占位符 URL 映射

   URL 中可以通过一个或多个 {} 占位符映射

   例如:@RequestMapping("/user/{userId}/show")

      可以通过 @PathVariable("") 注解将占位符中的值绑定到方法参数上    

 

/**
* 如果 URL 中的 userId 是纯数字,那么使用 @PathVariable
* 做绑定时,可以根据自己的需求将方法参数类型设置为 Long、
* Integer、String
*/
@RequestMapping("/user/{userId}/show")
public ModelAndView show(@PathVariable("userId") Long userId) {
// 创建 ModelAndView 对象,并设置视图名称
ModelAndView mv = new ModelAndView("show");
// 添加模型数据
mv.addObject("msg", "User ID:" + userId);
return mv;
}

 注意:@PathVariable("") 不能简写为 @PathVariable。因为在正常编译时,Java 类反射对象不包含方法的参数名称。如果在编译时将 Debug 打开(javac -debug=no),方法的参数名称才会记录到类中,此时才能简写,但不建议简写。

4. 限制请求方法的 URL 映射

  在 HTTP 请求中最常用的请求方法是 GET、POST,还有其他的一些方法,如:DELET、PUT、HEAD 等限制请求方法,例如:   

@RequestMapping(value="/hello", method=RequestMethod.POST)
//如需限制多个请求方法,以大括号包围,逗号隔开即可,例如:
method={RequestMethod.GET,RequestMethod.POST}

5 . 限制请求参数的 URL 映射

限制请求参数来映射 URL,例如:

@RequestMapping(value="/user/show", params="userId")

即 请求中必须带有 userId 参数

参数的限制规则如下:

(1)params="userId" 请求参数中必须包含 userId

(2)params="!userId" 请求参数中不能包含 userId

(3)params="userId!=1" 请求参数中必须包含 userId,但不能为 1

(4)params={"userId","userName"} 必须包含 userId 和 userName 参数

可以通过 @RequestParam("") 注解将请求参数绑定到方法参数上   

@RequestMapping(value="/user/show",params="userId")
public ModelAndView show(@RequestParam("userId") Long userId) {
// 创建 ModelAndView 对象,并设置视图名称
ModelAndView mv = new ModelAndView("show");
// 添加模型数据
mv.addObject("msg", "User ID:" + userId);
return mv;
}

 

 注意 @PathVariable("") 和 @RequestParam("") 的不同:

   @PathVariable("") 是将 URL 中占位符处的值绑定到方法参数上

   @RequestParam("") 是将 URL 后的请求参数绑定到方法参数上

 

引用网址:

https://www.cnblogs.com/siwuxie095/p/8486389.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值