Подтвердить что ты не робот

PathVariable в контроллере Spring

Я пытаюсь сопоставить url/locations/{locationId}/edit.html - который, похоже, работает с этим кодом:

@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 неправильным способом?

Как правильно использовать его?

4b9b3361

Ответ 1

он должен быть @PathVariable("locationId") int locationId

Ответ 2

Вы должны добавить аргумент value к @PathVariable, например,

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