pathvariable mvc framework formulario form español ejemplo docs java spring spring-mvc controller path-variables

java - mvc - PathVariable en Spring Controller



spring mvc español (3)

Estoy tratando de asignar la url /locations/{locationId}/edit.html - parece que funciona con este código

@Controller @RequestMapping( "/locations" ) public class LocationController { @RequestMapping( value = "/{locationId}/edit.html", method = RequestMethod.GET ) public String showEditForm( Map<String, Object> map, @PathVariable int locationId ) { map.put( "locationId", locationId ); return "locationform"; } }

Llame a los resultados de url mencionados en una excepción:

java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either.

¿Estoy usando la anotación @PathVariable de forma incorrecta?

¿Cómo usarlo correctamente?


JDK 7 habilita la introspección del nombre de parámetro

La exposición del nombre de parámetro está disponible en JDK7, de lo contrario, debe configurarlo en la anotación.

Debería usar la exposición JDK antes de usarla explícitamente (como sugirieron Johan y Moniul) como parte de la anotación, porque si desea cambiar la clave de parámetros, debe editar solo el nombre de la variable y no otras ocurrencias en las especificaciones de anotación. En otras líneas y / o clases. Llamémoslo fuente única de verdad.


Debe agregar el argumento de value a su @PathVariable , por ejemplo,

public String showEditForm( @PathVariable("locationId") int locationId, Map<String, Object> map) { // ... }


debe ser @PathVariable("locationId") int locationId