java - 如何知道@RequestMapping的哪个参数被调用

标签 java spring spring-mvc request-mapping

这是我的@RequestMapping注释:

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

在方法 errorLogin 中,有没有办法知道三个 url 中的哪一个被“调用”?

最佳答案

添加 HttpServletRequest 作为参数并使用它来查找当前请求路径。

更新:Spring还提供了RequestContextHolder:

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

在我看来,第一种方法更好并且更容易测试。

关于java - 如何知道@RequestMapping的哪个参数被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919809/

相关文章:

java - 常量引用的性能 - LIBGDX

java - 如何在 Spring Boot 应用程序中设置 Tomcat 的 "reloadable"标志?

java - 传输对象、Spring MVC、架构

java - 将 spring 上下文移动到 META-INF 后 Autowiring 失败

java - AsyncContext 响应与原始传入请求不匹配?

spring-mvc - Spring/OAuth2 错误 - InsufficientAuthenticationException,没有客户端身份验证。尝试添加适当的身份验证过滤器

java:将字符串转换为包含每个字符的十六进制数的字符串

java - 独立 Java 应用程序的规则引擎

java - 将值更改为字符串

使用 Tiles 时,Spring Session 无法在 Tomcat 8 上运行 - SESSION Cookie 未设置,因为已包含响应