У меня есть это RequestMapping:
@RequestMapping(value = "/route/to-{destination}-from-{departure}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
И я хотел бы добавить это RequestMapping:
@RequestMapping(value = "/route/to-{destination}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
Таким образом, он может обслуживать все маршруты "без отправления". Это, однако, создает конфликт, поскольку URL-адрес «/ route / to-destination-from-destination» также соответствует этому второму RequestMapping ...
Достаточно справедливо, поэтому я решил указать регулярное выражение:
@RequestMapping(value = "/route/to-{destination:^((?!-from-).)+}.html", method = {RequestMethod.GET, RequestMethod.HEAD})
Так что RequestMapping не будет совпадать, если «destination» содержит «-from -».
И ... это не работает! URL-адрес "/route/to-barcelona-from-paris.html" успешно обрабатывается первым RequestMapping, но URL-адрес "/route/to-barcelona.html" вообще не обрабатывается ... Чего мне не хватает?
Примечания. Я бы не хотел использовать решение Java, такое как наличие единственного "/ route / to- {destination}" RequestMapping, а затем проверка, содержит ли "destination" "-from-" .. :) Также я могу изменить эти маршруты из-за SEO ...