美文网首页
SpringMVC的 @PathVariable注解

SpringMVC的 @PathVariable注解

作者: 安在成丶 | 来源:发表于2019-12-23 16:45 被阅读0次

@PathVariable

路径变量,用于获取一个url地址中的一部分值,从路径中获得变量
该注解有两个属性: value、required; value用来指定要传入值的id名称
required属性用于表明,从url上指定的个别参数非必需,可能为空,但是在@RequesMapping映射地址中,需要指定所有可能匹配的映射地址

如下例:

//则需要给出两种可能匹配的地址
@RequestMapping(value = "/emp/{id}")
@RequestMapping(value = "/emp")
public void doAuditTaobao(@PathVariable(required = false) Integer id){
      taobaoService.auditTaobao(id);
}

RequestMapping 上说明了@RequestMapping(value="/emp/{id}"),就是获取你URL地址中的 /emp/ 的后面的那个 {id}

@PathVariable是用来获得请求url中的动态参数的,从路径中获得变量

默认情况下,Spring会对@PathVariable注解的变量进行自动赋值,当然你也可以指定@PathVariable使用哪一个URL中的变量

定义多个URL变量

可以定义URL路由,其中可以包含URL多个变量

@RequestMapping("/user/{username}/blog/{blogId}")
@ResponseBody
public String getUerBlog(@PathVariable(value = "username" , required = false) String username , @PathVariable int blogId) {
     return "user: " + username + "blog->" + blogId;
}
匹配正则表达式

通过@RequestMapping和@PathVariable,设定正则表达式做校验,可以对URL进行更加精确的控制定义。

定义语法是{变量名:正则表达式}

如下例:

@RequestMapping("/user/{username:[a-zA-Z0-9_]+}/blog/{blogId}")

[a-zA-Z0-9_]+是一个正则表达式,表示只能包含小写字母,大写字母,数字,下划线。如此设置URL变量规则后,不合法的URL则不会被处理,直接由SpringMVC框架返回404Not Found。

总结

  • 在@RequestMapping注解中定义URL变量规则
  • 在@RequestMapping注解方法中获取URL变量 @PathVariable
  • @PathVariable指定URL变量名
  • 定义多个URL变量
  • 用正则表达式精确定义URL变量

相关文章

网友评论

      本文标题:SpringMVC的 @PathVariable注解

      本文链接:https://www.haomeiwen.com/subject/sggznctx.html