2012-09-03 20 views

Respuesta

4

Hay un thread en los foros de Spring, donde alguien dice que no hay una "manera fácil", así que supongo que tendrías que analizar la URL para obtenerla.

+1

En realidad, la respuesta de @ashario anterior (http://stackoverflow.com/a/23468496/35274) muestra que se puede hacer. – Philippe

3

casi 1 año demasiado tarde, pero:

  String[] requestMappingParams = ((HandlerMethod)handler).getMethodAnnotation(RequestMapping.class).params() 

     for (String value : requestMappingParams) {... 

debería ayudar

+0

esto parece útil para recuperar el RequestParams pero no veo cómo obtener el valor de PathVariables con este enfoque – chrismarx

42

El hilo vinculado a por Pao funcionaba un lujo para mí

En el método preHandle() puede extraer el varios PathVariables ejecutando el siguiente código

Map pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); 
+6

y luego 'String value = (String) pathVariables.get (" yourPathVarName ");' eso es todo. Esto debe marcarse como respuesta – spiderman

+1

Perfecto, el código de ejemplo también funciona con '@ ControllerAdvice' y' @ ExceptionHandler'. Gracias – Andreas

+1

¿Por qué no está marcado como la respuesta correcta? – Philippe

0

Esto es lo que ¿Estás buscando?

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); 
    } 
} 
Cuestiones relacionadas