2016-01-21 115 views
2

这是我@RequestMapping注释:如何知道哪些@RequestMapping的参数是所谓

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

里面的方法errorLogin,有没有办法知道哪三个URL的是“叫”?

回答

3

HttpServletRequest添加为您的参数并用它来查找当前请求路径。

更新:Spring还提供RequestContextHolder

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

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

+0

谢谢。其实我已经做到了,但我想知道是否有特定的“春季方式”来做到这一点。 – MDP

+1

啊,我太慢了... –

+1

@MDP看到更新 –

3

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

@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"}) 
    public String errorLogin(HttpServletRequest request) {   
      String uri = request.getRequestURI(); 
      // do sth with the uri here 
    } 
+0

谢谢。其实我已经做到了,但我想知道是否有特定的“春季方式”来做到这一点。 – MDP

1

简单的方法是注入HttpServletRequest和得到URI:

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

谢谢。其实我已经做到了,但我想知道是否有特定的“春季方式”来做到这一点。 – MDP

相关问题