帮忙看下关于一个bean的错误
FileUploadTools.java 封装了 四个属性和一个beginUpload()方法
private String username;
private File uploadFile[];
private String uploadFileFileName[];
private String uploadFileContentType[];
public String beginUpload() { ...};
然后用Register.java调用FileUploadTools.java的方法报错,检查了很多遍,就是没有找到原因,还望大家帮帮忙,找找别扭啊。
Register.java代码:
package controller;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.text.SimpleDateFormat;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import upload.FileUploadTools;
import com.opensymphony.xwork2.ActionSupport;
public class Register extends ActionSupport{
/**
*
*/
private FileUploadTools fileUploadTools = new FileUploadTools();
public FileUploadTools getUploadTools(){
return fileUploadTools;
}
public void setFileUploadTools(FileUploadTools fileUploadTools){
this.fileUploadTools=fileUploadTools;
}
@Override
public void validate(){
}
public String execute() throws IOException{
fileUploadTools.beginUpload();
return "register";
}
}
package upload;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
public class FileUploadTools {
private String username;
private File uploadFile[];
private String uploadFileFileName[];
private String uploadFileContentType[];
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username=username;
}
public File[] getUploadFile(){
return uploadFile;
}
public void setUploadFile(File[] uploadFile){
this.uploadFile=uploadFile;
}
public String[] getUploadFileFileName(){
return uploadFileFileName;
}
public void setUploadFileFileName(String[] uploadFileFileName){
this.uploadFileFileName=uploadFileFileName;
}
public String[] getUploadFileContentType(){
return uploadFileContentType;
}
public void setUploadFileContentType(String[] uploadFileContentType){
this.uploadFileContentType=uploadFileContentType;
}
public String beginUpload() throws IOException {
System.out.println("username的值是:"+username);
String targetDirectory=ServletActionContext.getServletContext().getRealPath("/upload");
for(int i=0;i<uploadFile.length;i++){
File target = new File(targetDirectory,new SimpleDateFormat(
"yyyy_mm_dd_hh_mm_ss").format(new Date()).toString(
)+System.nanoTime()+uploadFileFileName[i]);
FileUtils.copyFile(uploadFile[i],target);
}
System.out.println("");
return "register";
}
}
struts.properties
struts.multipart.maxSize=2048000000
struts.multipart.SaveDir=/tempUploadFile
Bean Java Struts web
[解决办法]
最关键的报错信息木有。。
[解决办法]
错误信息呢??
[解决办法]
你的username值get,set()是放在FileUploadTools中,但是你页面提交的时候,跳转的action是Register,
Register调用FileUploadTools的时候,username没有获取到,也就是null,所有报空指针异常,你可以把FileUploadTools中的get,set()放到Register里面,然后再方法中传参数过去。
[解决办法]
或者你直接跳转到FileUploadTools action中,省去Register这一步