當上傳文件時老是說 No result defined for action com.xxx.action.SomeAction and result input 。 app
在action中添加以下三個方法。打印出來的是Invalid field value for field "file". post
public void addActionError(String anErrorMessage){
String s=anErrorMessage;
System.out.println(s);
}
public void addActionMessage(String aMessage){
String s=aMessage;
System.out.println(s);
}
public void addFieldError(String fieldName, String errorMessage){
String s=errorMessage;
String f=fieldName;
System.out.println(s);
System.out.println(f);
} 編碼
解決方法: url
在作文件上傳時,有一個form標籤的屬性必需要加上。 spa
文件上傳的form若以下面所寫,則會報異常:Invalid field value for field "**",緣由是:表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認狀況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據,進行下面的操做。 code
<s:form action="fileUpload.action" method="post"></s:form> orm
應改爲下面書寫形式: ip
<s:form action="fileUpload.action" method="post" enctype="multipart/form-data"></s:form> input
還須要注意一個問題:enctype=/"multipart/form-data/"是上傳二進制數據; form裏面的input的值以2進制的方式傳過去。form裏面的input的值以2進制的方式傳過去,因此request就得不到值了。 文件上傳