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

Spring Переменная MVC @Path с {} фигурными скобками

Разрабатываем приложение с помощью загрузки spring. В контроллере REST я предпочитаю использовать переменную пути (@PathVariabale аннотация). Мой код извлекает переменную пути, но он связывает {} фигурные скобки, как и в URL-адресе. Пожалуйста, любой предлагаю мне решить эту проблему.

@RequestMapping(value = "/user/item/{loginName}", method = RequestMethod.GET)
public void getSourceDetails(@PathVariable String loginName) {
    try {
        System.out.println(loginName);
        // it print like this  {john}
    } catch (Exception e) {
        LOG.error(e);
    }
}

URL

http://localhost:8080/user/item/{john}

Выход из контроллера

{john}

4b9b3361

Ответ 1

Используйте http://localhost:8080/user/item/john, чтобы отправить запрос.

Вы передаете Spring значение "{john}" переменной пути loginName, поэтому Spring получите его с помощью "{}"

Структура веб-MVC утверждает, что

Шаблоны шаблонов URI

Шаблоны URI можно использовать для удобного доступа к выбранным частям URL в методе @RequestMapping.

Шаблон URI представляет собой URI-подобную строку, содержащую одну или несколько переменных имена. Когда вы подставляете значения для этих переменных, шаблон становится URI. Предлагаемый шаблон RFC для URI определяет, как URI параметризованных. Например, шаблон URI http://www.example.com/users/ {userId} содержит переменную userId. Присвоение значения fred переменной дает http://www.example.com/users/fred.

В Spring MVC вы можете использовать аннотацию @PathVariable для метода аргумент, чтобы привязать его к значению переменной шаблона URI:

@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
 public String findOwner(@PathVariable String ownerId, Model model) {
     Owner owner = ownerService.findOwner(ownerId);
     model.addAttribute("owner", owner);
     return "displayOwner"; 
  }

Шаблон URI "/owner/{ownerId}" указывает имя переменной OwnerId. Когда контроллер обрабатывает этот запрос, значение ownerId устанавливается в значение, найденное в соответствующей части URI. Например, когда запрос приходит для /owner/fred, значение ownerId is fred.