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

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

Я попытался создать новую запись в файле pageviews.properties. Таким образом, я мог бы просто вернуть это имя из Controller1, и он будет искать мое имя для определения имени из 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-адреса, вместо того, чтобы использовать это для поиска в def.   mav.setViewName( "redirectRejectionEmail" );   return mav;

<definition name="createRejectionEmail.page" extends="brandedLayout">
  <put-attribute name="targetFunction" value="status" />
  <put-attribute name="content" value="/WEB  INF/jsp/pages/status/createRejectionEmail.jsp" />
</definition>

Моя текущая конфигурация ниже.

<bean id="resourceViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
p:order="0" p:basename="config.spring.viewresolution.pageviews"/>



<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
   <list>
  <value>/WEB-INF/jsp/**/views.xml</value>
    </list>
</property>
</bean>

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

Ответы

Ответ 1

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

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

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

public void myController(HttpServletResponse response){
response.sendRedirect("/myURL");
}

Ответ 2

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


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

    }

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

Ответ 3

Как перенаправить метод params, в одной форме с несколькими кнопками