これは私の@RequestMapping
注釈です:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(...){
...
}
メソッドerrorLogin内で、3 つの URL のうちどれが「呼び出された」かを知る方法はありますか?
これは私の@RequestMapping
注釈です:
@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(...){
...
}
メソッドerrorLogin内で、3 つの 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
}