是否可以在一个方法上使用多个@RequestMapping注释?
如:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
是否可以在一个方法上使用多个@RequestMapping注释?
如:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return "welcome";
}
当前回答
在我的测试中(spring 3.0.5), @RequestMapping(value={"", "/"}) -只有"/"有效,""无效。然而,我发现这是有效的:@RequestMapping(value={"/", " * "}),“*”匹配任何东西,所以它将是默认的处理程序,如果没有其他。
其他回答
在我的测试中(spring 3.0.5), @RequestMapping(value={"", "/"}) -只有"/"有效,""无效。然而,我发现这是有效的:@RequestMapping(value={"/", " * "}),“*”匹配任何东西,所以它将是默认的处理程序,如果没有其他。
如果你仍然想要得到被调用的uri,最好使用PathVariable注释。
@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}
或者从请求对象解析它。
最短的方法是:@RequestMapping({"", "/", "welcome"})
虽然你也可以这样做:
@ requestmaing(价值=“欢迎”) @ requestmaing(路径= "
以下也是可以接受的:
@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath",
"/fixedPath/{some-name}/{some-id}/fixed" },
produces = "application/json")
同样也可以应用于@RequestMapping
@RequestMapping有一个String[]值参数,所以你应该能够像这样指定多个值:
@RequestMapping(value={"", "/", "welcome"})