Java Spring 3.0将请求转发到不同的控制器
在spring中将请求转发到其他控制器的正确方式是什么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注入的依赖项,所以我不能自己创建它们并调
@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);