当上传文件时总是说 No result defined for action com.xxx.action.SomeAction and result input 。
在action中添加如下三个方法。打印出来的是Invalid field value for field "file".
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);
}
解决方法:
在做文件上传时,有一个form标签的属性必须要加上。
文件上传的form若如下面所写,则会报异常:Invalid field value for field "**",原因是:表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作。
<s:form action="fileUpload.action" method="post"></s:form>
应改成下面书写形式:
<s:form action="fileUpload.action" method="post" enctype="multipart/form-data"></s:form>
还需要注意一个问题:enctype=/"multipart/form-data/"是上传二进制数据; form里面的input的值以2进制的方式传过去。form里面的input的值以2进制的方式传过去,所以request就得不到值了。