Я пытаюсь сопоставить URL /locations/{locationId}/edit.html - что, кажется, работает с этим кодом:PathVariable весной контроллер
@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";
}
}
вызова указанного URL приводит исключение:
java.lang.IllegalArgumentException: Name for argument type [int] not available, and parameter name information not found in class file either.
Я использую @PathVariable Annotation неправильным способом?
Как использовать его правильно?
это подробно описано здесь, и происходит, когда ваш код компилируется без отладочной информации (HTTP: // docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html): ** если имя переменной шаблона URI совпадает с именем аргумента метода, вы можете опустить эту деталь. Пока ваш код не компилируется без отладки информации, Spring MVC будет сопоставлять имя аргумента метода с именем переменной шаблона URI ** –
. Обратите внимание, что просто компиляция с использованием «Debug As» необязательно включает в себя информацию об отладке в проекте. Проверьте свои настройки, [как подробно описано здесь] (http://stackoverflow.com/a/1318483/1412656), и в основном проверьте все флажки отладки! –