2013-01-10 23 views
5

W moim jsp i tak mam html:file, aw postaci mam gettera i setera. ale po uruchomieniu mam

<html:file> Błąd przesyłania pliku, -argument typu niedopasowanie-

Caused by: java.lang.IllegalArgumentException: Cannot invoke com.app.app.struts.forms.MyForm.setDocfile on bean class 'class com.app.app.struts.forms.MyForm' 
    - argument type mismatch - had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile" 

jsp:

<html:file property="docfile" styleId="docfile" size="45" ></html:file> 

uzyskiwanie błąd tylko przy składaniu stronę i nie jestem wgraniu czegokolwiek. (pole przesyłania nie jest wymagane).

Odpowiedz

8

Wydaje się, że problem z kodowaniem, forma rozpórek nie rozpoznaje przesłania jako typu pliku, upewnij się, że ustawiono atrybut encji formularza na multipart/form-data i metoda jako post.

Więc trzeba mieć:

<html:form action="/somePath" enctype="multipart/form-data" method="post"></html:form> 

Należy pamiętać, że może to bałagan rzeczy z walidacji. Aby uzyskać więcej informacji, zobacz artykuł this.

+0

po lil poszukiwaniu Widziałem _Use 'wieloczęściowy/form-data' gdy masz _ więc myślę, że nie tylko jego w kolumnach, –

+0

powinno być . Jestem pewien, że to literówka :) – Cybermonk

0

dodać ten zależności do projektu:

<dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.4</version> 
    </dependency>