2

これは私の@RequestMapping注釈です:

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

メソッドerrorLogin内で、3 つの URL のうちどれが「呼び出された」かを知る方法はありますか?

4

3 に答える 3

3

パラメータとして追加HttpServletRequestし、それを使用して現在のリクエスト パスを見つけます。

更新:Springは以下も提供しますRequestContextHolder

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

私の意見では、最初のアプローチの方が優れており、もう少しテストしやすいです。

于 2016-01-21T09:33:29.997 に答える
3

HttpServletRequest をメソッド パラメーターに挿入し、呼び出された uri を取得できます。

  @RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
  public String errorLogin(HttpServletRequest request) {        
            String uri = request.getRequestURI(); 
            // do sth with the uri here
  }
于 2016-01-21T09:34:34.417 に答える
1

最も簡単な方法は、HttpServletRequest を注入して uri を取得することです。

@RequestMapping({"/loginBadCredentials", "/loginUserDisabled", "/loginUserNumberExceeded"})
public String errorLogin(HttpServletRequest request) {        
        String uri = request.getRequestURI(); 
        // switch on uri what you need to do
}
于 2016-01-21T10:12:08.947 に答える