私は春-MVCを使用して、単一のメソッドを作成し、両方がそれに+ POSTをGETに設定したいと思います:RestControllerと同じ方法でGET + POSTを実行していますか?
@RestController
public class MyServlet {
@RequestMapping(value = "test", method = {RequestMethod.GET, RequestMethod.POST})
public void test(@Valid MyReq req) {
//MyReq contains some params
}
}
問題:上記のコードで、任意のPOST
リクエストは空MyReq
オブジェクトにつながります。
メソッドシグニチャを@RequestBody @Valid MyReq req
に変更すると、ポストは機能しますが、GET
要求は失敗します。
入力パラメータとしてBeanを使用する場合、同じメソッドでgetとpostを一緒に使用することはできません。
あなたがセンJSONはGETリクエストでは一般的ではありませんが、一般的には本体はなくパラメータのみです。 Request Body!=リクエストパラメータ。したがって、バインドまたはシリアライゼーションの両方を使用することはできません。 –
なぜこのようなことをしたいですか? GETメソッドとPOST HTTPメソッドは目的/セマンティクスが異なるため、多くの意味がありません。 – Jesper
JSONをGETとして送信していません。私はGETとしてurlクエリーparamsを送り、POSTとしてJSON配列を送ります。 – membersound