2011-07-05 34 views
0

我在支柱上傳文件有問題Struts的文件上傳問題

我的jsp文件代碼


名候選人
候選人的當前指定

候選人共有的experiance

薪水

Excpected工資

準備搬遷

教育

     </tr> 
         <tr>  
           <td>Key Skill In Field<br /></td> 
           <td><html:text name="GenerateResumeForm" size="35" property="keySkill"/></td> 
         </tr> 
         <tr>  
           <td>Attach Resume<br /></td> 
           <td><html:file name="GenerateResumeForm" property="attachFile"/></td> 
         </tr> 
         <tr>  
           <td>Job Description<br /></td> 
           <td><html:textarea name="GenerateResumeForm" cols="27" rows="5" property="jobDesc"/></td> 
         </tr> 
         <tr>  
           <td><br /></td> 
           <td><html:submit/></td> 
         </tr> 
       </table> 
       </html:form> 

我的ActionForm是

包com.hrstrides.employer.generateResume;

import org.apache.struts.upload.FormFile;

公共類GenerateResumeForm延伸org.apache.struts.action.ActionForm {

/** 
* 
*/ 
private static final long serialVersionUID = 6895513074470145219L; 

private String designation; 
private String experiance; 
private String jobDesc; 
private String currentSalary; 
private String expectedSalary; 
private String readyToRelocate; 
private String education; 
private String keySkill; 
private FormFile attachFile; 
public String getDesignation() { 
    return designation; 
} 
public void setDesignation(String designation) { 
    this.designation = designation; 
} 
public String getExperiance() { 
    return experiance; 
} 
public void setExperiance(String experiance) { 
    this.experiance = experiance; 
} 
public String getJobDesc() { 
    return jobDesc; 
} 
public void setJobDesc(String jobDesc) { 
    this.jobDesc = jobDesc; 
} 
public String getCurrentSalary() { 
    return currentSalary; 
} 
public void setCurrentSalary(String currentSalary) { 
    this.currentSalary = currentSalary; 
} 
public String getExpectedSalary() { 
    return expectedSalary; 
} 
public void setExpectedSalary(String expectedSalary) { 
    this.expectedSalary = expectedSalary; 
} 
public String getReadyToRelocate() { 
    return readyToRelocate; 
} 
public void setReadyToRelocate(String readyToRelocate) { 
    this.readyToRelocate = readyToRelocate; 
} 
public String getEducation() { 
    return education; 
} 
public void setEducation(String education) { 
    this.education = education; 
} 
public String getKeySkill() { 
    return keySkill; 
} 
public void setKeySkill(String keySkill) { 
    this.keySkill = keySkill; 
} 
public FormFile getAttachFile() { 
    return attachFile; 
} 
public void setAttachFile(FormFile attachFile) { 
    this.attachFile = attachFile; 
} 
public String getCandidateName() { 
    return candidateName; 
} 
public void setCandidateName(String candidateName) { 
    this.candidateName = candidateName; 
} 
public static long getSerialversionuid() { 
    return serialVersionUID; 
} 
private String candidateName; 

}

和操作類是

包com.hrstrides.employer.generateResume;

import java.io.File; import java.io.InputStream;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile;

公共類GenerateResumeAction擴展行動{

private String name; 
private String designation; 
private String experiance; 
private String currentSalary; 
private String expectedSalary; 
private String relocate; 
private String education; 
private String keySkill; 
private FormFile file; 
private String jobDescription; 

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse responese)throws Exception{ 

    GenerateResumeForm generateResume = (GenerateResumeForm) form; 

    name = generateResume.getCandidateName(); 
    designation = generateResume.getDesignation(); 
    experiance = generateResume.getExperiance(); 
    currentSalary = generateResume.getCurrentSalary(); 
    expectedSalary = generateResume.getExpectedSalary(); 
    relocate = generateResume.getReadyToRelocate(); 
    education = generateResume.getEducation(); 
    keySkill = generateResume.getKeySkill(); 


    jobDescription = generateResume.getJobDesc(); 

// FormFile myFile = generateResume.getAttachFile(); 
    //System.out.println(myFile.getFileSize()); 

    /* 
    GenereateResumeDAO geneResume = new GenereateResumeDAO(name,designation,experiance, 
      currentSalary,expectedSalary,relocate,education,keySkill,jobDescription); 
    if (geneResume.isGenerated()){ 
     System.out.println("True"); 
    }else{ 
     System.out.println("False"); 
    } 
    */ 
    return null; 
} 

}

和錯誤,如

的java.lang。拋出:IllegalArgumentException:參數類型不匹配 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773) at org.apache.commons.beanutils.PropertyUtilsBean。java.lang.reflect.Method.invoke(Method.java:597) setSimpleProperty(PropertyUtilsBean.java:1759) 在org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648) 在org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677) at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022) at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811) at org.apache.commons.beanutils。 BeanUtils.populate(BeanUtils.java:298) at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493) at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816) 在org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203) 在org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) 在org.apache.struts.action。 ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.se rvlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain。的java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 在org.apache。 catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve。 java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter的.java:261) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:581) 在組織.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)

回答

2

在你的html:form標籤中添加enctype屬性,像這樣:

<html:form enctype="multipart/form-data"></html:form>