2012-04-05 9 views
2

私はこのようなフォームオブジェクトがしたい:アップロードされたファイルをフォームオブジェクトプロパティにバインドするにはどうすればいいですか?

public class FormData { 

    private MultipartFile file1; 

    private MultipartFile file2; 

    // setters/getters for above fields and other properties 
} 

を、私はSpringMVCは、例えばバインドしたいです<input type="file" name="file1"> HTMLフォームフィールドからフォームオブジェクトプロパティへのフィールド。 spring-form.tldにそのJSPタグ(<form:file path="file1" />または<form:input type="file" path="file1" />など)が見つかりませんでした。まったく可能ですか?そうでない場合、この制限はSpring内部で深く根付いており、簡単には克服できませんか?

@RequestMapping(value = {"/"}, method = RequestMethod.POST) 
public ModelAndView compare(@ModelAttribute(FORM_BEAN_NAME) FormData formData, 
    @RequestParam("file1") MultipartFile file1, 
    @RequestParam("file2") MultipartFile file2, 
    BindingResult bindingResult) { 

が、すべてのHTMLフォーム要素が一つのクラスにバインドされ、メソッドのシグネチャがない場合、私は幸せになります:

は、私が(documentationで説明)メソッドの引数をコントローラにファイルアップロードフォームの値をバインドする方法を知っています新しいアップロードフィールドが追加されたときに増強します。

答えて

1

私は数年前にこれを正確に行いました。私が覚えることができる唯一の違いは、インターフェイスの代わりにCommonsMultipartFileを使用したことです。これを試すと例外がスローされるか、値がバインドされないとどうなりますか?

+0

もっと一般的なものに 'org.springframework.web.multipart.MultipartFile'インターフェースを使用していないのはなぜですか? –

+0

私は理由を覚えていない、多分それは意味がない。あなたはそれを試しましたか?何が起こるのですか? – sinuhepop

+0

ありがとう、それはバインディングに見えます –

関連する問題