は私が...それは正しいキャッチするために/春のMVCアプリケーションSomoneのが使用できるのHTTPリクエストの体をデータバインドすること春MVC:@RequestBody VS @ModelAttribute
を理解しました@ RequestBody
要求はapplication/json
としてエンコードされていますか? x-www-form-urlencoded
またはmultipart/form-data
としてエンコード要求のための
@PostMapping(consumes = "application/json")
public String handleUpload(@RequestBody UploadCommand command) {
// ...
}
@ModelAttribute
?
@PostMapping(consumes = "multipart/form-data")
public String handleUpload(@ModelAttribute UploadCommand command) {
// ...
}
質問:春は、これら二つの異なる注釈を持っているため
なぜそれが必要なのか?
これらの注釈の使用例は他にありますか?
注:このstackoverflowの答えは深さに@ModelAttributeについて詳しく説明: 周りに掘った後、前にmentionnedとして @ModelAttribute annotation, when to use it?
...簡単です。 JSONからオブジェクトを作成することは、要求パラメータとのバインドとはまったく異なるものです。したがって、異なる注釈。 –
@M。 Deinum URLのクエリ部分(?..)をModelAttribute(単一のオブジェクト)にマップすることはできますか? – Dachstein
それはそれを行うための '@ ModelAttribute'の全体的なポイントです。クエリパラメータまたはフォームパラメータのいずれかになります。 –