В Spring MVC 3 я хочу обрабатывать один и тот же url двумя разными классами контроллеров - в зависимости от значения параметра url. В аннотации @RequestMapping даже есть такое поле: params, и я думал, что это будут два разных маппинга (я использую маппинг на уровне классов):
@RequestMapping(value = "/myurl", params = "name=val1")
и
@RequestMapping(value = "/myurl", params = "name=val2")
но это не так. Spring выбрасывает исключение для второго случая, что контроллер для /myurl уже отображен (по первому случаю).
Есть ли какое-то точное решение для разделения отображения запросов по параметрам? Может быть расширение @RequestMapping или использование прокси в качестве контроллера и вызов разных контроллеров в зависимости от параметра... Any thoughts?
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 {....}
}
И я хотел бы разделить логику в разных классах.