這是我@RequestMapping
註釋:如何知道哪些@RequestMapping的參數是所謂
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(...){
...
}
裏面的方法errorLogin,有沒有辦法知道哪三個URL的是「叫」?
這是我@RequestMapping
註釋:如何知道哪些@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
}
謝謝。其實我已經做到了,但我想知道是否有特定的「春季方式」來做到這一點。 – MDP
簡單的方法是注入HttpServletRequest和得到URI:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(HttpServletRequest request) {
String uri = request.getRequestURI();
// switch on uri what you need to do
}
謝謝。其實我已經做到了,但我想知道是否有特定的「春季方式」來做到這一點。 – MDP
謝謝。其實我已經做到了,但我想知道是否有特定的「春季方式」來做到這一點。 – MDP
啊,我太慢了... –
@MDP看到更新 –