7

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";
}

最初のメソッド呼び出しを 2 番目の (POST) メソッドにリダイレクトできますか? 2 番目のメソッドを GET として使用するか、セッションを使用することは望ましくありません。

ご回答ありがとうございます。

4

1 に答える 1

2

HTTP GET を HTTP POST にリダイレクトしないでください。HTTP GET と HTTP POST は 2 つの異なるものです。それらは非常に異なる動作をすることが期待されています (GET は安全で、べき等であり、キャッシュ可能です。POST はべき等です)。詳細については、たとえばHTTP GET および POST のセマンティクスと制限またはhttp://www.w3schools.com/tags/ref_httpmethods.aspを参照してください。

できることは次のとおりです: SecondMethod にも RequestMethod.GET で注釈を付けます。その後、目的のリダイレクトを行うことができるはずです。

@RequestMapping(value = "/secondMethod", method = {RequestMethod.GET, RequestMethod.POST})
public String secondMethod(@RequestParam String param) {
...
}

ただし、secondMethod は HTTP GET リクエストを介して呼び出すことができることに注意してください。

于 2013-08-31T09:22:47.157 に答える