考虑这个spring MVC处理程序方法:
@RequestMapping(value = "/profile/{id}", method = RequestMethod.GET)
public String displayProfile(Person person, ModelMap model) { ... }
我的问题:我是否可以在此解析程序中访问id
的值,而无需手动解析URl:
public class PersonReslover implements HandlerMethodArgumentResolver { .. }
答案 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);
}