首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

帮忙看下关于一个bean的异常

2013-07-08 
帮忙看下关于一个bean的错误FileUploadTools.java 封装了 四个属性和一个beginUpload()方法private String

帮忙看下关于一个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";
}


}






FileUploadTools.java代码:

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";
}
}



其他代码及配置

register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   
  <body> 
 
<s:form action="register" method="post" enctype="multipart/form-data" >
username:<s:textfield name="fileUploadTools.username"></s:textfield>
<br/>
<s:file name="fileUploadTools.uploadFile"></s:file>
<br/>
<s:file name="fileUploadTools.uploadFile"></s:file>
<br/>
<s:file name="fileUploadTools.uploadFile"></s:file>
<br/>
<s:submit value="提交"></s:submit>
</s:form>

  </body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<package name="struts3.1" extends="struts-default" >

<action name="register" class="controller.Register">
<result name="register">showregister.jsp</result>
<result name="input">register.jsp</result>

</action>
</package>

<constant name="struts.ui.theme" value="simple"></constant>
</struts>



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这一步

热点排行