2012-09-03 14 views

risposta

4

C'è un thread nei forum Spring, dove qualcuno dice che non esiste un "modo semplice", quindi suppongo che dovresti analizzare l'URL per ottenerlo.

+1

In realtà la risposta di @ashario sopra (http://stackoverflow.com/a/23468496/35274) indica che è possibile farlo. – Philippe

3

Quasi 1 anno troppo tardi, ma:

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

     for (String value : requestMappingParams) {... 

dovrebbe aiutare

+0

questo sembra utile per recuperare il RequestParams ma non vedo come ottenere il valore di PathVariables con questo approccio – chrismarx

42

Il filo collegato a da Pao ha funzionato a meraviglia per me

Nel metodo preHandle() è possibile estrarre il varie PathVariables eseguendo il seguente codice

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

e quindi 'String value = (String) pathVariables.get (" yourPathVarName ");' questo è tutto. Questo dovrebbe essere contrassegnato come risposta – spiderman

+1

Perfetto, il codice di esempio funziona anche con '@ ControllerAdvice' e' @ ExceptionHandler'. Grazie – Andreas

+1

Perché questo non è contrassegnato come la risposta corretta ?! – Philippe

0

È questo che stai cercando?

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