Перенаправление с одного метода контроллера на другой метод контроллера

Я использую Spring 3 и Tiles 2 в своем приложении, и у меня возникли проблемы с перенаправлением. Предпочтительно, я хотел бы иметь возможность просто вызывать или перенаправлять из метода Controller1 в метод Controller2, но до сих пор не удалось.

Я попытался создать новую запись в файле pageviews.properties. Таким образом, я мог бы просто вернуть это имя из Controller1, и он посмотрел бы мое имя def плиток из файлов xml.

createRejectionEmail.(parent)=tilesView
createRejectionEmail.url=createRejectionEmail.page

redirectRejectionEmail.(class)=org.springframework.web.servlet.view.RedirectView
rediectRejectionEmail.contextRelative=true
redirectRejectionEmail.url=createRejectionEmail.page

Но, когда я пытаюсь вернуться, как показано ниже, мой URL содержит createRejectionEmail как часть URL - вместо того, чтобы использовать это для поиска в тайлах. mav.setViewName (»redirectRejectionEmail»); возврат мав;


  
  

Мой текущий конфиг ниже.







   
  /WEB-INF/jsp/**/views.xml
    


Любая помощь и рекомендации будут с благодарностью!

Ответы на вопрос(2)

@RequestMapping(value = "/timeout", method = RequestMethod.GET)
    public ModelAndView loginForm(HttpServletRequest request,HttpServletResponse response) {


                return new ModelAndView("redirect:/app/timeout");

    }

При вызове этого обработчика метода он перенаправляется на контроллер / app / timeout.

 deFreitas29 нояб. 2016 г., 15:25
Работает как шарм, и лучше всего то, что если ваше приложение имеет контекст, то этот метод решает его без необходимости явной передачи.
Решение Вопроса

Из вашего контроллера вы можете изменить тип возвращаемого значения на ModelAndView и код возврата ниже. Это перенаправит запрос и вызовет контроллер для нового URL.

return new ModelAndView("redirect:/myURL");

В качестве альтернативы вы можете взять HttpServletResponse в вашем методе контроллера и вернуть перенаправление.

public void myController(HttpServletResponse response){
response.sendRedirect("/myURL");
}
 larrytech22 апр. 2016 г., 17:35
Это работает для меня без каких-либо изменений. использую spring 4.1+ и hibernate 5.0+.
 Marin07 мар. 2016 г., 23:10
Кажется, это работает нормально даже с возвращаемым типом String для аннотированных методов @RequestMapping. Как в КарлеВ этом случае ключом является добавление конфигурации класса UrlBasedViewResolver.
 Ravikumar Rathod14 сент. 2017 г., 08:51
это разные пользовательские
 Carl21 июн. 2013 г., 20:23
ОК, Ух! Это'работает! Спасибо большое за вашу помощь. Мне также пришлось добавить UrlBasedViewResolver в контекст моего приложения. Я очень ценю, что вы нашли время ответить!
 Carl21 июн. 2013 г., 20:06
Привет, спасибо за ваш ответ. Я попытался это, и я получаю следующее. Не удалось разрешить вид с именем "переадресовать: /myapppath/status/displayEmailRejectionForm.html» в сервлете с именем 'Весна-MVC-для-ОА», Должен ли я использовать другой распознаватель представлений? В настоящее время мы используем ResourceBundleViewResolver с tile2

Ваш ответ на вопрос