前言:
最近项目中需要对controller传入的应用标识(appMarkId)进行校验,appMarkId是通过@PathVariable传入到url模版中的,这里用到了aop统一拦截处理,但是在拦截的过程中发现request获取不到该参数,随后进行了研究。
示例代码:
处理:
Map map = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
可以用这个方法获取到所有uri模版中传入的参数。
扩展: aop中获取request和response
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
HttpServletResponse response = servletRequestAttributes.getResponse();