URI模式
1. ?
匹配一个字符
2. *
匹配路径段中的零个或多个字符
3. **
匹配零个或多个路径段
URI变量并通过以下方式访问它们的值@PathVariable:
@GetMapping("/owners/{ownerId}/pets")
public Pet findPet(@PathVariable Long ownerId) {
// ...
}
可以在类和方法级别声明URI变量:
@Controller
@RequestMapping("/owners/{ownerId}")
public class OwnerController {
@GetMapping("/pets/{petId}")
public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
// ...
}
}
URI变量默认支持 int
long
Date
简单类型 ,会自动的转换为合适的类型或者引发TypeMismatchException
。
其他类型支持请 你可以注册任何其它数据类型的支持。请参阅类型转换和DataBinder。
用正则表达式语法声明一个URI变量:{varName:regex}
例如:给定的URL “/spring-web-3.0.5 .jar”,下面的方法提取名称,版本和文件扩展名:
@GetMapping("/{name:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{ext:\\.[a-z]+}")
public void handle(@PathVariable String version, @PathVariable String ext) {
// ...
}
URI路径模式也可以嵌入${…}
占位符,这些占位符在启动时通过PropertyPlaceHolderConfigurer本地,系统,环境和其他属性源来解析。这可以用于例如基于某些外部配置参数化基本URL。