Skip to main content
 首页 » 编程设计

redirect之Spring MVC GET/重定向/POST

2024年08月06日9yyy_WW

假设我有 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 limitationshttp://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。