"Отсутствует переменная шаблона URI 'teamLeadId' для параметра метода типа Long" - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь получить teamLeadId и пытаюсь передать его в список, но он отображается как отсутствующая переменная шаблона URI! Почему это происходит?

@GetMapping(value = "pppp/{id}" , produces =MediaType.APPLICATION_JSON_VALUE) 
      public List<Team>getUserById(@PathVariable("teamLeadId") Long teamLeadId){
          List<Team> team = (List<Team>) teamService.fetchTeamsByTeamLeadId(teamLeadId); 
          return team;}

Ответы [ 4 ]

1 голос
/ 24 января 2020

Чтобы решить описанную проблему, вы должны заменить pppp/{id} на pppp/{teamLeadId} - переменная id не встречается в вашей функции.

1 голос
/ 24 января 2020

Потому что вы принимаете параметр Path как id.

@GetMapping(value = "/pppp/{id}") 

и вы пытаетесь получить доступ к teamLeadId

@PathVariable("teamLeadId")

Так что это не удалось выяснить. Вы должны использовать то же имя в этом. Мол,

@PathVariable("id") Long teamLeadId
1 голос
/ 24 января 2020

Вам нужно использовать value = "pppp/{teamLeadId}"

Он ищет точное имя переменной в пути, который вы определили в GetMapping

0 голосов
/ 24 января 2020

Почему это происходит?

Существует несоответствие между именем переменной, используемой в шаблоне URI аннотации @GetMapping (id) и значение, указанное в аннотации @PathVariable (teamLeadId). Используйте одно из следующего:

@GetMapping("/pppp/{id}") 
public List<Team> getUserById(@PathVariable("id") Long teamLeadId) {
    ...
}
@GetMapping("/pppp/{teamLeadId}") 
public List<Team> getUserById(@PathVariable("teamLeadId") Long teamLeadId) {
    ...
}

Начиная с Java 8, если ваш код скомпилирован с -parameters флагом компилятора и , если метод имя параметра соответствует имени переменной URI, поэтому вам не нужно указывать имя переменной в аннотации @PathVariable. Например, если имя переменной URI равно id, а имя параметра метода также id, то вы можете иметь следующее:

@GetMapping("/pppp/{id}") 
public List<Team> getUserById(@PathVariable Long id) {
    ...
}

См. Документацию для подробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...