2016-01-21 25 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

相關問題