如何在自定义HandlerMethodArgumentResolver中访问路径变量

时间:2015-03-09 09:22:18

标签: 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 { .. }

1 个答案:

答案 0 :(得分:13)

使用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);
}