java - 如何在我的自定义 HandlerMethodArgumentResolver 中访问路径变量

标签 java spring-mvc

考虑这个 spring MVC 处理程序方法:

  @RequestMapping(value = "/profile/{id}", method = RequestMethod.GET)
  public String displayProfile(Person person, ModelMap model) { ... }

我的问题:我可以在这个解析器中访问 id 的值而不必手动解析 URl:

public class PersonReslover implements HandlerMethodArgumentResolver { .. }

最佳答案

使用 NativeWebRequest 引用,可从 HandlerMethodArgumentResolver 的 resolveArgument() 方法访问。

例如:

 private Map<String, String> getPathVariables(NativeWebRequest webRequest) {

    HttpServletRequest httpServletRequest = webRequest.getNativeRequest(HttpServletRequest.class);
    return (Map<String, String>) httpServletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
}

关于java - 如何在我的自定义 HandlerMethodArgumentResolver 中访问路径变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938540/

相关文章:

java - 接口(interface)是对象的实例,对象是Java中接口(interface)的实例?

java - 如何从嵌套的 HashMap 中检索键而不是其值

java - JNDI 没有可用于处理的 EJB 接收器

spring - Java应用程序构建失败,其中Mysql url指向Docker容器

java - Apache POI (excel) 执行 getSheet() 与 createSheet()

java - JDBI 的查询超时

jsp - 运行存储在数据库中的 JSTL 代码

spring - 使用 Spring Data REST 公开枚举

spring - 如何在 Spring MVC Controller 中映射动态 url/prj/noticeOpen/2

spring - 关于spring Rowmapper、mapRow