私はSpring MVCアプリケーションを開発しており、コントローラでマルチパートリクエストを処理したいと考えています。私が渡しているリクエストではMultiPartFile
、現在ファイルパラメータを取得するために使用しており@RequestParam
、メソッドは次のようになります。
@RequestMapping(method = RequestMethod.POST)
public def save(
@ModelAttribute @Valid Product product,
@RequestParam(value = "image", required = false) MultipartFile file) {
.....
}
上記のコードは私のサービスではうまく機能し、ファイルはサーバー側で取得されます。どこかで、そのファイルでは@RequestPart
の代わりにアノテーションを使用する必要があると見ました@RequestParam
。ファイルに使用すると何か問題がありますか@RequestParam
? または、将来何らかのエラーが発生する可能性がありますか?
ベストアンサー1
@RequestParam
ファイルを使用しても問題ありませんMultipart
。
@RequestParam アノテーションは、"multipart/form-data" リクエストの一部を、同じメソッド引数タイプをサポートするメソッド引数に関連付けるためにも使用できます。主な違いは、メソッド引数が文字列でない場合、@RequestParam は登録された Converter または PropertyEditor によるタイプ変換に依存するのに対し、@RequestPart はリクエスト部分の 'Content-Type' ヘッダーを考慮して HttpMessageConverters に依存することです。@RequestParam は名前と値のフォーム フィールドで使用される可能性が高く、@RequestPart はより複雑なコンテンツ (JSON、XML など) を含む部分で使用される可能性が高くなります。