私は前同様の質問をしてきた。今、私は似ていますが、別の問題を持っているthis oneグラブMVCのメソッドの引数として、JSONペイロードから特定のプロパティ
。
私のSpring MVCコントローラモデルは、残念なことに私のプロジェクトのクラスの一部ではない、定義済みの属性セットを持つJSONペイロードです。
など。
{
"userId" : "john",
"role" : "admin"
}
私は別のString
sとuserId
とrole
を治療する必要があります。
1)パラメータの組み合わせごとにカスタムDTOクラスを作成する必要があるため、私は現在、コントローラのメソッド
public ResponseObject mvc(@RequestBody MyCustomDTO dto){
String userId = dto.getUserId();
String role = dto.getRole();
}
public ResponseObject mvc(@RequestBody ModelMap map){
String userId = (String)map.get("userId");
String role = (String)map.get("role");
}
を宣言するには二つの方法があり、私は別の実装を見つけることが求められている(ほとんどの場合は1を必要とします例えばdelete(productId)
)、2)厳格に定義されていないエンティティが関与しています。特に、リストを扱うときには、実行時にチェックする必要のある任意の値を含めることができます。
私が見つけたように、Spring MVCはJSON要求本体から@ModelAttribute
を解決することをサポートしていません。私は間違って何かをしているのですか?そうではありませんか?リクエストボディからメソッド引数に、特定のプロパティを取得できますか?それをプレーンプリミティブまたはPOJO全体にすることはできますか?
2番目のケースでは、Spring開発者に便利な機能をリクエストする方がよいでしょう。
春バージョンは4.2.xです。 この質問は以前にリンクされたものと関連していますが、今はJavascriptオブジェクトに単一のプロパティをカプセル化しているため、Jacksonが非直列化する必要があるオブジェクトはプリミティブではなくPOJOになります。
こんにちは、最初のおかげで多くのアドバイスをしています。あなたの答えを編集し、最初の部分だけを削除しました。**正確には**私がやったことです**私は自分の質問で尋ねたものと似ているから**やりたくないです。残りの部分は素晴らしいですし、私があなたのプロジェクトで実装を行うことができれば、私はSpringプロジェクトにそれをプッシュできることを願っています。 –
@ usr-local-ΕΨΗΕΛΩΝPOJOがほしいと思っていませんでした。 –
...マップではない、またはModelMap :-)これらの型は非常に一般的なので、コンパイル時に何が入っているのか分かりません。 –