Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Java Spring 3.0将请求转发到不同的控制器_Java_Spring Mvc - Fatal编程技术网

Java Spring 3.0将请求转发到不同的控制器

Java Spring 3.0将请求转发到不同的控制器,java,spring-mvc,Java,Spring Mvc,在spring中将请求转发到其他控制器的正确方式是什么 @RequestMapping({"/someurl"}) public ModelAndView execute(Model model) { if (someCondition) { //forward to controller A } else { //forward to controller B } } 所有的控制器都有Spring注入的依赖项,所以我不能自己创建它们并调

在spring中将请求转发到其他控制器的正确方式是什么

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

所有的控制器都有Spring注入的依赖项,所以我不能自己创建它们并调用它们,但我希望请求属性传递给其他控制器。

尝试返回一个字符串,该字符串是转发url

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

您可以使用视图名称,如“重定向:控制器名”或“转发:控制器名”。后者将请求重新路由到另一个控制器,前者将告诉浏览器将请求重定向到另一个url


文档:

您可以使用Spring
重定向视图
将请求从一个控制器发送到另一个控制器。 默认情况下,它将是请求类型“GET”


这里有一个指向Spring3.0.x重定向视图文档的链接,其中还包括:转发。如果没有硬编码“someUrlA”,是否可以这样做?重定向不是转发。redirect将带有redirect命令的头发送到客户机,客户机只需跟随位置,就可以将委托请求处理转发给同一请求中的其他处理程序。
RedirectView redirectView = new RedirectView("/controllerRequestMapping/methodmapping.do", true);