В контроллере MVC Spring я могу получить переменную пути с помощью @PathVariable, чтобы получить значение переменной, определенной в @RequestMapping. Как я могу получить значение переменной в перехватчике?
Большое спасибо!
В контроллере MVC Spring я могу получить переменную пути с помощью @PathVariable, чтобы получить значение переменной, определенной в @RequestMapping. Как я могу получить значение переменной в перехватчике?
Большое спасибо!
Тема, связанная с Пао, помогла мне
В методе preHandle() вы можете извлечь различные PathVariables, выполнив следующий код
Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
В форумах Spring есть thread, где кто-то говорит, что нет "простого способа", поэтому я полагаю вам придется проанализировать URL-адрес, чтобы получить его.
Почти 1 год слишком поздно, но:
String[] requestMappingParams = ((HandlerMethod)handler).getMethodAnnotation(RequestMapping.class).params()
for (String value : requestMappingParams) {...
должен помочь
Это то, что вы ищете?
ConfigClass extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new HandlerInterceptor() {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("Request Url: " + request.getRequestURL().toString()+ "?" + request.getQueryString());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
// TODO Auto-generated method stub
}
});
super.addInterceptors(registry);
}
}