通过弹簧控制器的重定向将请求方法从POST更改为GET

时间:2018-08-27 11:30:25

标签: java rest spring-mvc web

我有一个spring mvc控制器,它接受发布请求,并且需要重定向到URL(GET请求)。

@RequestMapping(value = "/sredirect", method = RequestMethod.POST)
public String processForm(HttpServletRequest request) {
    System.out.println("Ews redirect hit !!! ");
request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE,HttpStatus.MOVED_PERMANENTLY);

    return "redirect:https://www.google.com/";
}

并且该类用@RestController注释。我总是收到405,重定向网址不允许使用此方法。 (即google.com)。

根据文档(https://tools.ietf.org/html/rfc7238),应允许更改方法。我不确定我在做什么错?有人可以帮忙吗

2 个答案:

答案 0 :(得分:1)

看起来Rest控制器不能像非Rest控制器那样使用简单的“重定向:”约定。参见Spring MVC @RestController and redirect

答案 1 :(得分:0)

您是否尝试过在请求映射中接受GET?

method = { RequestMethod.POST, RequestMethod.GET }