2016-08-10 4 views
0

У меня есть необходимость иметь одну функцию в карте контроллера для нескольких URL-адресов, отличающихся только несколькими символами. url1: NPP/v0/членство URL2: NPP/ВГК/v2/членствоspring boot requestmapping regex

  1. Есть ли способ, чтобы только эти 2 строки?
  2. Что делать, если я хочу разрешить любой шаблон?

Спасибо.

ответ

2

Просто разрешить две строки означать, что вы хотите использовать атрибут «путь» для @RequestMapping, поскольку он позволяет использовать массив строк.

@RequestMapping(path = {"/npp/v0/membership", "/npp/hcl/v2/membership"}) 
public void membership() { } 

Если вы хотите, чтобы символы подстановки вам просто нужно использовать Ant выражения:

@RequestMapping(path = "/npp/**") 
public void npp() { } 

Если вы хотите детали пути, который был использован вы должны смотреть на HttpServletRequest объект, который вы можете перешли в метод.

+0

Могу ли я сделать @RequestMapping (path = "/ npp/**/membership"), чтобы убедиться, что он заканчивается также «членством»? –

+1

Не пробовал это раньше. Мое предположение, хотя это должно работать, если оно действительно использует [AntPathMatcher] (http://docs.spring.io/autorepo/docs/spring-framework/current/javadoc-api/org/springframework/util/AntPathMatcher.html) –