2010-02-19 15 views
0

J'ai une application Struts 1 avec le ActionForm suivant:FormFile Lancer ConversionException

import org.apache.struts.upload.FormFile; 

public class uploadedFileForm { 

public FormFile theFile; 

    public FormFile getTheFile() { 
     return theFile; 
    } 

    public void setTheFile(FormFile theFile) { 
     this.theFile = theFile; 
    } 
} 

page Ma JSP a la forme suivante:

<html:form action="/myAction" enctype="multipart/form-data"> 
<html:file property="theFile" onkeypress="return false;" /> 
</html:form> 

Quand je soumets le formulaire à mon action Struts, je recevoir immédiatement le message d'erreur suivant:

org.apache.commons.beanutils.ConversionException: Could not convert java.lang.String to org.apache.struts.upload.FormFile 

J'ai essayé d'ajouter quelques instructions de débogage à Le début de mon action, mais aucun d'eux n'a été imprimé. Cela semble indiquer que Struts lance cette erreur avant d'avoir atteint mon action.

Quelqu'un at-il des suggestions sur ce qui pourrait causer ce message d'erreur?

Répondre

2

Le problème était lié à la balise html: form.

J'avais besoin d'avoir à la fois les attributs method = "post" et enctype = "multipart/form-data" sur la balise html: form.

Ma forme réelle était plus complexe et ne possédait pas la propriété enctype = "multipart/form-data". Quand je l'ai ajouté, tout a bien fonctionné.