这是我的@RequestMapping
注释:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(...){
...
}
在方法errorLogin中,有没有办法知道三个 url 中的哪一个被“调用”?
这是我的@RequestMapping
注释:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(...){
...
}
在方法errorLogin中,有没有办法知道三个 url 中的哪一个被“调用”?
添加HttpServletRequest
为您的参数并使用它来查找当前请求路径。
更新:Spring还提供RequestContextHolder
:
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
String currentReqUri = attributes.getRequest().getRequestURI();
在我看来,第一种方法更好,更容易测试。
您可以将 HttpServletRequest 注入方法参数中,然后获取调用的 uri。
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(HttpServletRequest request) {
String uri = request.getRequestURI();
// do sth with the uri here
}
最简单的方法是注入 HttpServletRequest 并获取 uri:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(HttpServletRequest request) {
String uri = request.getRequestURI();
// switch on uri what you need to do
}