Необязательные сегменты пути в Spring MVC
чтениеэтот (Spring 3) статья от 2010 года, в которой обсуждается использование расширения для предоставления удобного способа включения необязательных сегментов пути:
@RequestMapping("/houses/[preview/][small/]{id}")
public String handlePreview(@PathVariable long id, @PathVariable("preview/") boolean preview, @PathVariable("small/") boolean small) {
return "view";
}
Я знаю, что мог бы просто реализовать несколько отображений запросов для достижения того же эффекта:
@RequestMapping(value="/houses/preview/{id}")
...
@RequestMapping(value="/houses/{id}")
...
~~~ snip ~~~
Но в зависимости от количества возможных перестановок, это кажется очень многословным вариантом.
Есть ли в более поздней версии Spring (после 3) такая возможность? В качестве альтернативы, существует ли какой-либо механизм для объединения частей URL-адреса запроса для подачи большей сигнатуры метода ответа?
Обновить
Этот ответ на вопрос, касающийся совместного использования переменных пути и параметров запроса, предлагается такой подход:
@RequestMapping(method=RequestMethod.GET, value={"/campaigns","/campaigns/{id}"})
@ResponseBody
public String getCampaignDetails(
@PathVariable("id") String id)
{
~~~ snip ~~~
Но переменная пути не может быть установлена в нуль. Просто собираюсь/campaigns
вернет 400 ответ.