【问题标题】:Spring @RequestMapping Controller ForwardingSpring @RequestMapping 控制器转发
【发布时间】:2015-02-28 07:41:59
【问题描述】:
@RequestMapping({"/someurl"})
public String execute(Model model) {
    if (someCondition) {
        return "forward:/someUrlA";
    } else {
        return "forward:/someUrlB";
    }
}

我试图将请求从一个控制器转发到另一个控制器。当我运行它时,控制器返回字符串作为响应而不是转发到另一个控制器......有人可以指出我缺少什么吗?

【问题讨论】:

  • 您的控制器是@Controller 还是@RestController?同样使用 url 作为路径变量(“{}”)在我看来是错误的。
  • 应该可以的。 /someUrlA/someUrlB 是如何映射的?此外,除非您将多个路径绑定到同一个处理程序,否则您可以指定 @RequestMapping("/someurl")

标签: java spring rest forward request-mapping


【解决方案1】:

您可以重定向请求而不是转发。

所以改变你的回报

    if (someCondition) {
        return "redirect:/someUrlA";
    } else {
        return "redirect:/someUrlB";
    }

更多详情refer this documentation

【讨论】:

  • 重定向将向客户端发送 HTTP 302 响应,并强制客户端向服务器发出另一个请求。问题是专门关于转发的,这完全是服务器端的。
猜你喜欢
  • 2012-09-20
  • 2016-02-21
  • 1970-01-01
  • 2016-12-31
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
相关资源
最近更新 更多