Найти, какой URL-адрес использовался для доступа к контроллеру при сопоставлении нескольких URL-адресов одному и тому же методу контроллера - PullRequest
0 голосов
/ 10 сентября 2018

Я вижу Spring MVC, отображение нескольких URL на один и тот же метод управления

Так что теперь у меня есть метод, определенный как

@RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST)
public String foo() {
    // was it called from /aaa or /bbb
}

Во время выполнения я хочу знать, был ли вызван контроллер из /aaa или /bbb

1 Ответ

0 голосов
/ 10 сентября 2018

Вы можете использовать HttpServletRequest#getServletPath, который:

Возвращает часть URL-адреса этого запроса, которая вызывает сервлет.Этот путь начинается с символа "/" и включает в себя либо имя сервлета, либо путь к сервлету, но не содержит никакой дополнительной информации о пути или строки запроса.

Как следует:

@RequestMapping(value = {"/aaa", "/bbb", "/ccc/xxx"}, method = RequestMethod.POST)
public String foo(HttpServletRequest request) {
  String path = request.getServletPath(); // -> gives "/aaa", "/bbb" or "/ccc/xxx"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...