Как разделить отображение запросов Spring MVC по значению параметра

В 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 {....}
}

И я хотел бы разделить логику в разных классах.

11
задан crudo6 9 February 2012 в 11:11
поделиться