当多个URL映射到同一控制器方法时,查找用于访问控制器的URL

时间:2018-09-10 17:47:14

标签: java spring spring-mvc model-view-controller

我看到了Spring MVC multiple url mapping to the same controller method

所以现在我有一个定义为

的方法
@RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST)
public String foo() {
    // was it called from /aaa or /bbb
}

在运行时,我想知道是从/aaa还是/bbb调用了控制器

1 个答案:

答案 0 :(得分:2)

您可以使用HttpServletRequest#getServletPath,其中:

  

返回此请求的URL中调用servlet的部分。这个   路径以“ /”字符开头,并包含servlet名称   或servlet的路径,但不包含任何其他路径   信息或查询字符串。

如下:

@RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST)
public String foo(HttpServletRequest request) {
  String path = request.getServletPath(); // -> gives "/aaa", "/bbb" or "/ccc/xxx"
}