如何知道调用哪个@RequestMapping参数

时间:2016-01-21 09:28:36

标签: java spring spring-mvc request-mapping

这是我的@RequestMapping注释:

  @RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
  public String errorLogin(...){        
            ... 
        }

在方法 errorLogin 中,有没有办法知道三个网址中的哪一个被叫做#34;?

3 个答案:

答案 0 :(得分:3)

添加HttpServletRequest作为参数,并使用它来查找当前请求路径。

更新:Spring还提供RequestContextHolder

ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
String currentReqUri = attributes.getRequest().getRequestURI();

在我看来,第一种方法更好,更可测试。

答案 1 :(得分:3)

你可以将HttpServletRequest注入方法参数,然后获取被调用的uri。

1024

答案 2 :(得分:1)

最简单的方法是注入HttpServletRequest并获取uri:

@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(HttpServletRequest request) {        
        String uri = request.getRequestURI(); 
        // switch on uri what you need to do
}