多个Spring @RequestMapping注释

wun*_*tee 237 java spring spring-mvc url-routing request-mapping

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

@RequestMapping("/")
@RequestMapping("")
@RequestMapping("/welcome")
public String welcomeHandler(){
 return("welcome");
}
Run Code Online (Sandbox Code Playgroud)

Ed *_*nin 413

@RequestMapping有一个String[]值参数,所以你应该能够指定多个这样的值:

@RequestMapping(value={"", "/", "welcome"})

  • 就是说,我在使“”或“ /”值在我的应用程序中实际工作时遇到困难。他们为您工作吗? (2认同)

Ala*_*ong 23

从我的测试(春季3.0.5),@RequestMapping(value={"", "/"}) - 只有"/"工作,""没有.但是我发现这工作:@RequestMapping(value={"/", " * "}),在" * "比赛任何事情,所以它会在情况下,没有其他的默认处理程序.


Rob*_*ond 12

不需要.RequestMapping注释支持通配符和ant样式路径.看起来你只想要一个默认视图,所以你可以放

<mvc:view-controller path="/" view-name="welcome"/>
Run Code Online (Sandbox Code Playgroud)

在您的配置文件中.这会将对Root的所有请求转发到欢迎视图.

  • 它不提供多个RequestMapping注释可提供的灵活性.例如,如果我想让一个方法支持带有POST的值"/ a"或带有GET的值"/ b".当然,解决方法相当容易(在第三种方法中重构功能),但只是说它会很有用. (2认同)

Mar*_*rco 9

最短的方法是:@RequestMapping({"", "/", "welcome"})

虽然你也可以这样做:

  • @RequestMapping(value={"", "/", "welcome"})
  • @RequestMapping(path={"", "/", "welcome"})


Pri*_*jee 7

以下内容也是可以接受的:

@GetMapping(path = { "/{pathVariable1}/{pathVariable1}/somePath", 
                     "/fixedPath/{some-name}/{some-id}/fixed" }, 
            produces = "application/json")
Run Code Online (Sandbox Code Playgroud)

@RequestMapping同样也可以应用到