多个Spring @RequestMapping注释

时间:2010-03-25 04:19:56

标签: java spring spring-mvc request-mapping

是否可以在方法中使用多个@RequestMapping spring注释?像:

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}

7 个答案:

答案 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