Search code examples
javaspringspring-mvcrequest-mapping

How to know which param of @RequestMapping is called


This is my @RequestMapping annotation:

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

Inside the method errorLogin , is there a way to know which of the three url was "called"?


Solution

  • Add HttpServletRequest as your parameters and use it to find the current request path.

    Update: Spring also provides RequestContextHolder:

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

    In my opinion, first approach is better and a little more testable.