Значения в фигурных скобках в весенних аннотациях - PullRequest
2 голосов
/ 24 февраля 2012

Это может быть простой вопрос для тех, кто знает Spring, но, поскольку я новичок, я все равно задам его.

Я перебираю некоторый код Spring и не могу понять следующее:

 @RequestMapping(value="/{id}") 
 public void show(@PathVariable("id") long id, Model model) {...}

Комментарий к этому разделу кода: «При использовании шаблонов URI доступ к параметрамиспользуя аннотацию @PathVariable.

Ранее я встречал код, подобный

 @RequestMapping(value="/url/path") 
 public String list(Model model) {...}

. Под этим я понимаю, что всякий раз, когда встречается URL "/ url / path", список () будет вызван метод, но я не могу понять смысл предыдущей аннотации. Что это значит?

Кроме того, в следующей строке говорится, что аннотации @PathVariable можно ограничить с помощью регулярных выражений

 @RequestMapping(value="/{id}")
 public void show(@PathVariable("id:[\\d]*") String idl) {...} // will match only numberic IDs

Что это значит?

1 Ответ

2 голосов
/ 24 февраля 2012

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

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

Например, шаблон URI http://www.example.com/users/{userId} содержит переменную userId. Присвоение переменной значения fred дает http://www.example.com/users/fred.

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

Итак, в вашем примере:

@RequestMapping(value="/{id}") 
public void show(@PathVariable("id") long id, Model model) {...}

Это извлечет часть URL, представленную {id}, и свяжет ее с параметром метода id, например, путь /42 свяжет 42 с id.

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