Próbuję map url /locations/{locationId}/edit.html - który wydaje się działać z tym kodem:PathVariable w Spring Controller
@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";
}
}
połączeń wspomniane URL powoduje wyjątek:
java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either.
Czy używam adnotacji @PathVariable w niewłaściwy sposób?
Jak używać go poprawnie?
ten jest szczegółowo tutaj, a dzieje się, gdy kod jest kompilowany bez informacje debugowania (http: // docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html): ** jeśli nazwa zmiennej szablonu URI jest zgodna z nazwą argumentu metody, możesz pominąć ten szczegół. Dopóki twój kod nie zostanie skompilowany bez informacji o debugowaniu, Spring MVC będzie dopasowywać nazwę argumentu metody do nazwy zmiennej szablonu URI ** –
pamiętać, że samo kompilowanie przy użyciu "Debug As" niekoniecznie będzie zawierać informacje debugowania w projekcie. Sprawdź ustawienia, [jak opisano tutaj] (http://stackoverflow.com/a/1318483/1412656), i po prostu sprawdź wszystkie pola wyboru debugowania! –