2011-11-10 29 views
5

He trabajado el servlet que necesita convertir al controlador Spring MVC para tener acceso a los beans spring etc. ¿Por qué en el servlet normal request.getPathInfo() no devuelve null, pero en Spring Controller obtengo un valor nulo? Sé que puedo usar @PathVariable, pero me pregunto por qué los resultados de este método son la diferencia.Controlador Spring MVC - getPathInfo() es nulo

@RequestMapping(value = {"/test", "/test/*"}) 
public void test(HttpServletRequest req, HttpServletResponse res) { 

    log.info(req.getPathInfo() == null); // true! 

    if (req.getMethod().equalsIgnoreCase("get")) { 
     // analogue to doGet... 
    } else { 
     // analogue to doPost... 
    } 

} 
+0

¿cuál es la URL que está buscando? –

+0

URL: 'http: // localhost: 8080/myApp/test/hello'. 'req.getPathInfo()' shuld return '/ hello' – marioosh

Respuesta

6

Creo que la solución está en el javadoc de getPathInfo()

La información de la ruta adicional sigue la ruta del servlet, pero precede a la cadena consulta y se iniciará con un carácter "/".

En caso de primavera la ruta del servlet es la ruta completa, por tanto, si se llama a getServletPath() siempre devolverá la URI completa y getPathInfo() devolverá nada.

+0

Esto ciertamente debe estar marcado como la respuesta correcta por ahora. –

Cuestiones relacionadas