Java 当多个url映射到同一控制器方法时,查找用于访问控制器的url
我明白了 现在我有一个方法定义为Java 当多个url映射到同一控制器方法时,查找用于访问控制器的url,java,spring,spring-mvc,model-view-controller,Java,Spring,Spring Mvc,Model View Controller,我明白了 现在我有一个方法定义为 @RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST) public String foo() { // was it called from /aaa or /bbb } 在运行时,我想知道控制器是从/aaa还是/bbb调用的,您可以使用: 返回此请求的URL中调用servlet的部分。这 路径以“/”字符开头,包括servlet名称或 或s
@RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST)
public String foo() {
// was it called from /aaa or /bbb
}
在运行时,我想知道控制器是从/aaa
还是/bbb
调用的,您可以使用:
返回此请求的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"
}
您可以使用HttpServletRequest::getRequestURL,然后将其剥离并解析uri。而不是将HttpServletRequest对象作为您可以使用的每个控制器方法的参数传递。看看这个