Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 从一个控制器方法重定向到另一个控制器方法_Spring_Jsp_Spring Mvc_Tiles - Fatal编程技术网

Spring 从一个控制器方法重定向到另一个控制器方法

Spring 从一个控制器方法重定向到另一个控制器方法,spring,jsp,spring-mvc,tiles,Spring,Jsp,Spring Mvc,Tiles,我在应用程序中使用Spring3和Tiles 2,在重定向方面遇到了一些问题。 最好,我希望能够从Controller1方法调用或重定向到Controller2方法,但到目前为止还没有成功 我已尝试在pageviews.properties文件中创建一个新条目。这样,我就可以从Controller1返回这个名称,它将从xml文件中查找我的tiles def名称 createRejectionEmail.(parent)=tilesView createRejectionEmail.url=cre

我在应用程序中使用Spring3和Tiles 2,在重定向方面遇到了一些问题。 最好,我希望能够从Controller1方法调用或重定向到Controller2方法,但到目前为止还没有成功

我已尝试在pageviews.properties文件中创建一个新条目。这样,我就可以从Controller1返回这个名称,它将从xml文件中查找我的tiles def名称

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

redirectRejectionEmail.(class)=org.springframework.web.servlet.view.RedirectView
rediectRejectionEmail.contextRelative=true
redirectRejectionEmail.url=createRejectionEmail.page
但是,当我尝试返回如下所示的URL时,URL包含createRejectionEmail作为URL的一部分,而不是使用它在tiles defs中进行查找。 mav.setViewName(“重定向拒绝邮件”); 返回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>

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

任何帮助和指导都将不胜感激

您可以从控制器将返回类型更改为ModelAndView,并返回下面的代码。这将重新引导请求并为新URL调用控制器

return new ModelAndView("redirect:/myURL");
或者,您可以在控制器方法中接受HttpServletResponse并返回重定向

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

当此方法处理程序调用时,它将重定向到/app/timeout控制器。

Hi感谢您的响应。我尝试了此操作,得到了以下结果。无法解析名为“重定向:/myapppath/status/displayEmailRejectionForm.html”的servlet中名为“Spring MVC for OA”的视图。我应该使用不同的视图解析器吗?目前,我们正在使用ResourceBundleViewResolver和tiles2OK Whow!它起作用了!非常感谢你的帮助。我还必须将UrlBasedViewResolver添加到我的应用程序上下文中。我真的很感谢你花时间回复!即使使用@RequestMapping注释方法的字符串返回类型,这似乎也可以正常工作。就像Carl的例子一样,关键是添加UrlBasedViewResolver类配置。这对我来说是可行的,没有任何修改。使用spring 4.1+和hibernate 5.0+。这是一个很好的方法,最好的方法是,如果应用程序具有上下文,则此方法无需显式传递即可解决它。
@RequestMapping(value = "/timeout", method = RequestMethod.GET)
    public ModelAndView loginForm(HttpServletRequest request,HttpServletResponse response) {


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

    }