是否可以在方法中使用多个@RequestMapping spring注释?像:
@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
return("welcome");
}
答案 0 :(得分:391)
@RequestMapping
有一个String[]
值参数,因此您应该可以指定多个值,如下所示:
@RequestMapping(value={"", "/", "welcome"})
答案 1 :(得分:22)
从我的测试(春季3.0.5),@RequestMapping(value={"", "/"})
- 仅"/"
起作用,""
不起作用。但是我发现这有效:@RequestMapping(value={"/", " * "})
," * "
匹配任何内容,因此如果没有其他内容,它将成为默认处理程序。
答案 2 :(得分:12)
不需要。 RequestMapping注释支持通配符和ant样式路径。看起来你只想要一个默认视图,所以你可以把
<mvc:view-controller path="/" view-name="welcome"/>
在您的配置文件中。这会将对Root的所有请求转发到欢迎视图。
答案 3 :(得分:1)
最短的方法是:@RequestMapping({"", "/", "welcome"})
尽管您也可以这样做:
@RequestMapping(value={"", "/", "welcome"})
@RequestMapping(path={"", "/", "welcome"})
答案 4 :(得分:0)
现在使用Spring-Boot-{}将不起作用。
npm install --save-dev sass-loader@6.0.7
仍然将String []作为值参数,因此声明如下:
@RequestMapping
答案 5 :(得分:0)
如果您仍然想获取被调用的uri,最好使用PathVariable注释。
@PostMapping("/pub/{action:a|b|c}")
public JSONObject handlexxx(@PathVariable String action, @RequestBody String reqStr){
...
}
或从请求对象中解析它。
答案 6 :(得分:0)
以下内容也是可以接受的:
@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath",
"/fixedPath/{some-name}/{some-id}/fixed" },
produces = "application/json")
同样可以应用于@RequestMapping