Подтвердить что ты не робот

Spring 3.0 запрос пересылки на другой контроллер

Каков правильный способ перенаправления запроса в spring на другой контроллер?

@RequestMapping({"/someurl"})
public ModelAndView execute(Model model) {
    if (someCondition) {
        //forward to controller A
    } else {
        //forward to controller B
    }
}

Все контроллеры имеют зависимости, введенные Spring, поэтому я не могу просто создать их и сам вызвать их, но я хочу, чтобы атрибуты запроса передавались другим контроллерам.

4b9b3361

Ответ 1

Попробуйте вместо этого вернуть String, а String - прямой URL.

@RequestMapping({"/someurl"})
public String execute(Model model) {
    if (someCondition) {
        return "forward:/someUrlA";
    } else {
        return "forward:/someUrlB";
    }
}

Ответ 2

Вы можете использовать имя вида, например, "redirect: имя_контроллера" или "forward: имя_контроллера". Последний будет перенаправлять запрос другому контроллеру, а первый будет указывать браузеру перенаправить запрос на другой URL.

Ответ 3

Вы можете использовать Spring RedirectView для отправки запроса от одного контроллера к другому контроллеру. Это будет по умолчанию Тип запроса "GET"

RedirectView redirectView = new RedirectView("/controllerRequestMapping/methodmapping.do", true);