В Spring MVC 3 я хочу обрабатывать один и тот же URL с двумя разными классами контроллеров - в зависимости от значения параметра url. @ RequestMapping у аннотации даже есть такое поле: params , и я подумал, что следующим будет два разных отображения (я использую отображение на уровне класса):
@RequestMapping(value = "/myurl", params = "name=val1")
и
@RequestMapping(value = "/myurl", params = "name=val2")
но это не так. Spring вызывает исключение для второго случая, когда контроллер для / myurl уже сопоставлен (по первому случаю).
Есть ли какое-то точное решение для разделения запросов на запросы по параметрам? Может быть расширение @RequestMapping или использование прокси в качестве контроллера и вызов различных контроллеров в зависимости от параметра ...
Есть мысли?
UPDATE
Это работает, но только на уровне методов, а не на уровне класса ...
Это будет:
@Controller
@RequestMapping(value = "/myurl")
public class Class123 {
@RequestMapping(value = {"edit.htm"}, params = "src=1")
public String open1(Map<String, Object> map) throws Exception {....}
@RequestMapping(value = {"edit.htm"}, params = "src=2")
public String open2(Map<String, Object> map) throws Exception {....}
}
это не будет:
@Controller
@RequestMapping(value = "/myurl", params = "src=1")
public class Class123_1 {
@RequestMapping(value = {"edit.htm"})
public String open(Map<String, Object> map) throws Exception {....}
}
@Controller
@RequestMapping(value = "/myurl", params = "src=2")
public class Class123_2 {
@RequestMapping(value = {"edit.htm"})
public String open(Map<String, Object> map) throws Exception {....}
}
И я бы хотел разделить логику на разные классы.