2015-10-06 2 views
0

Требование, чтобы написать контроллер для обработки POST запросов от нижеприведенных ссылок:Spring MVC отображение запроса на основе URL параметров

http://hostname:port/com/prod1?id=2&action=add 
http://hostname:port/com/prod1?id=2&action=minus 

http://hostname:port/com/prod2?id=2&action=add 
http://hostname:port/com/prod2?id=2&action=minus 

Могу ли я иметь два метода, один для отображения адресов с действием = добавить, а другой для URL-адресов с действием = минус? Все запросы - POST.

ответ

1

No Насколько мне известно. В соответствии с конечным URL точек,

они,

  1. /ком/prod1
  2. /ком/prod2

Для них вы можете иметь 2 метода контроллера для каждого из них.

EDIT:

Если я вас правильно понял,

Вместо вышеуказанных конечных точек, написать 2 метода контроллера для запроса отображений,

  1. ком/добавить
  2. ком/минус

Если вы хотите иметь его в более гранулированном mann ээ, то

  1. ком/prod1/добавить
  2. ком/prod1/минус
  3. ком/prod2/добавить
  4. ком/prod2/минус

методы запроса записи отображения для выше.

Тогда у вас есть,

http://hostname:port/com/prod1/add?id=2 http://hostname:port/com/prod1/minus?id=2

http://hostname:port/com/prod2/add?id=2 http://hostname:port/com/prod2/munus?id=2

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

  1. ком/добавить
  2. ком/минус
+0

Я хочу это основанный на действии (действие = добавить или действие = минус), не основанный на prod1 или prod2. –

+0

@PraveeshP дайте мне знать, если вам нужна дополнительная помощь –

1

Вы не можете иметь два @RequestMapping методы для сопоставления двух URL-адресов, отличающихся только параметрами запроса. @RequestMapping связывается только с частью пути URL.

У вас может быть два метода, если вы отправляете по значению action, вызывая один метод для add, а другой для minus.

Или вы можете сделать add или minus частью URL-адреса.

1

пару лет между вопросом и ответом, но да можно маршрутизировать на основе параметров запроса с Spring MVC:

@RequestMapping(path = "/com/{product}", params = "add") 
String add(@PathVariable("product") String product) { 
    System.out.println("add method; product=" + product); 
    return "add"; 
} 

@RequestMapping(path = "/com/{product}", params = "minus") 
String minus(@PathVariable("product") String product) { 
    System.out.println("minus method; product=" + product); 
    return "minus"; 
} 
Смежные вопросы