Sto cercando di mappare l'url /locations/{locationId}/edit.html - che sembra funzionare con questo codice:PathVariable nel controller primavera
@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";
}
}
call I risultati url menzionati in un'eccezione:
java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either.
Sto utilizzando l'annotazione @PathVariable in modo errato?
Come si utilizza correttamente?
questo è dettagliato qui, e succede quando il codice viene compilato senza informazioni di debug (http: // docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html): ** se il nome della variabile del modello URI corrisponde al nome dell'argomento del metodo, è possibile omettere tale dettaglio. Finché il tuo codice non è compilato senza informazioni di debug, Spring MVC abbinerà il nome dell'argomento del metodo al nome della variabile URI ** –
nota che la semplice compilazione usando "Debug come" non includerà necessariamente le informazioni di debug nel progetto. Controlla le tue impostazioni, [come dettagliato qui] (http://stackoverflow.com/a/1318483/1412656), e in pratica controlla tutte le caselle di controllo del debug! –