当前位置: 代码迷 >> J2EE >> struts文件上传出错 求救啊
  详细解决方案

struts文件上传出错 求救啊

热度:235   发布时间:2016-04-22 02:42:19.0
struts文件上传出错 求救啊!救命啊!
action里面的代码:

Java code
//通过FormFile对象上传文件private FormFile processDef;    private FormFile processImage;    public FormFile getProcessDef() {        return processDef;    }    public void setProcessDef(FormFile processDef) {        this.processDef = processDef;    }    public FormFile getProcessImage() {        return processImage;    }    public void setProcessImage(FormFile processImage) {        this.processImage = processImage;    }    

页面的代码:
HTML code
<tr>            <td class="tdEditLabel" ><strong>请选择流程定义文件</strong></td>                        <td class="tdEditContent"><strong><input type="file" name="processDef"></strong>            </td>            <td class="tdEditLabel" ><strong>请选择流程定义图片</strong></td>                        <td class="tdEditContent"><strong><input type="file" name="processImage"></strong></td>        </tr>


但是上传之后 出现了以下的错误!:
ognl.MethodFailedException: Method "setProcessDef" failed for object su.rong.jie.action.WorkflowAction@41fef [java.lang.NoSuchMethodException: setProcessDef([Ljava.io.File;)]
。。。
/-- Encapsulated exception ------------\
java.lang.NoSuchMethodException: setProcessDef([Ljava.io.File;)
。。。
\--------------------------------------/
expr: processDef val: [Ljava.io.File;@ccc48b context: ognl.OgnlContext@c7df21c1 root:[su.rong.jie.action.WorkflowAction@41fef, com.opensymphony.xwork2.DefaultTextProvider@17ba2e9] value: [Ljava.io.File;@ccc48b
ognl.MethodFailedException: Method "setProcessImage" failed for object su.rong.jie.action.WorkflowAction@41fef [java.lang.NoSuchMethodException: setProcessImage([Ljava.io.File;)]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823)




------解决方案--------------------
Java code
源码package com.framework.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.List;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class FileUploadAction extends ActionSupport {    private static final long serialVersionUID = 1L;    private String username;    private String password;    private List<File> file;    private List<String> fileFileName;    private List<String> fileContentType;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public List<File> getFile() {        return file;    }    public void setFile(List<File> file) {        this.file = file;    }    public List<String> getFileFileName() {        return fileFileName;    }    public void setFileFileName(List<String> fileFileName) {        this.fileFileName = fileFileName;    }    public List<String> getFileContentType() {        return fileContentType;    }    public void setFileContentType(List<String> fileContentType) {        this.fileContentType = fileContentType;    }    @SuppressWarnings("deprecation")    @Override    public String execute() throws Exception {        for (int i = 0; i < file.size(); i++) {                        InputStream is = new FileInputStream(file.get(i));                        String root = ServletActionContext.getRequest().getRealPath("\\item");                        File destFile = new File(root, this.getFileFileName().get(i));                        OutputStream os = new FileOutputStream(destFile);            byte[] by = new byte[400];                        int length = 0;                        while ((length = is.read(by)) > 0) {                                os.write(by, 0, length);            }            is.close();            os.close();        }        return "success";    }}
  相关解决方案