假设我有 2 个 Spring MVC 服务:
@RequestMapping(value = "/firstMethod/{param}", method = RequestMethod.GET)
public String firstMethod(@PathVariable String param) {
// ...
// somehow add a POST param
return "redirect:/secondMethod";
}
@RequestMapping(value = "/secondMethod", method = RequestMethod.POST)
public String secondMethod(@RequestParam String param) {
// ...
return "mypage";
}
可以将第一个方法调用重定向到第二个(POST)方法吗? 使用第二种方法作为 GET 或使用 session 是不可取的。
感谢您的回复!
请您参考如下方法:
您不应将 HTTP GET 重定向到 HTTP POST。 HTTP GET 和 HTTP POST 是两个不同的东西。它们的行为预计会有很大不同(GET 是安全的、幂等的且可缓存。POST 是幂等的)。有关更多信息,请参阅例如 HTTP GET and POST semantics and limitations或http://www.w3schools.com/tags/ref_httpmethods.asp 。
你可以做的是:也用RequestMethod.GET注释第二个方法。然后您应该能够进行所需的重定向。
@RequestMapping(value = "/secondMethod", method = {RequestMethod.GET, RequestMethod.POST})
public String secondMethod(@RequestParam String param) {
...
}
但请注意,然后可以通过 HTTP GET 请求调用 secondaryMethod。