2015-02-28 2 views
2
@RequestMapping({"/someurl"}) 
public String execute(Model model) { 
    if (someCondition) { 
     return "forward:/someUrlA"; 
    } else { 
     return "forward:/someUrlB"; 
    } 
} 

Im пытается передать запрос от контроллера другому контроллеру. Когда я запускаю это, контроллер возвращает строку в качестве ответа вместо пересылки на другой контроллер ... Может кто-нибудь, пожалуйста, укажет, что мне не хватает?Spring @RequestMapping Controller Forwarding

+0

Ваш контроллер по '@ Controller' или его' @ RestController'? Также использование url в качестве переменной пути («{}») выглядит неправильно для меня. –

+0

Это должно было сработать. Как вы отображаете '/ someUrlA' и'/someUrlB'? Кроме того, если вы не связываете несколько путей с одним и тем же обработчиком, вы можете указать '@RequestMapping ("/someurl ")'. – sh0rug0ru

ответ

1

Вы можете перенаправить запрос вместо пересылки.

так изменить ваше возвращение с

if (someCondition) { 
     return "redirect:/someUrlA"; 
    } else { 
     return "redirect:/someUrlB"; 
    } 

Для получения более подробной информации refer this documentation

+1

Переадресация отправит HTTP 302 ответ клиенту и заставит клиента сделать другой запрос на сервер. Вопрос был конкретно о пересылке, которая является полностью серверной. – sh0rug0ru

Смежные вопросы