package com.shine.struts.action;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import javax.servlet.ServletContext;
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;import com.shine.model.FileList;
import com.shine.server.IFileImportServer;
import com.shine.struts.form.FileUploadForm;/**
*
* @author luhaihua
* 这个Action 是实现文件的上传功能,采用了Struts自带的upload的功能
*
*/
public class FileUploadAction extends Action {
//IFileImportServer对象的注入
public IFileImportServer iFileImportServer; public void setFileImportServer(IFileImportServer fileImportServer) {
iFileImportServer = fileImportServer;
} public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//FileUploadForm 的初始化
FileUploadForm uploadForm = (FileUploadForm) form;
//FileList对象的初始化
FileList fileList = new FileList();
//文件流输出的初始化
FileOutputStream fo = null;
byte[] buff = null;
//获取上传文件的信息对象
FormFile uploadfile = uploadForm.getUploadfile();
//获取上传文件的文件名
String fileName = null;
fileName = uploadfile.getFileName();
//保存到hibernate映射表的对象
fileList.setFilename(fileName); ServletContext sc = servlet.getServletContext();
//获取文件上传的完全路径
String realpath = sc.getRealPath("/upload/" + fileName);
//保存到对象中
fileList.setFilepath(realpath);
//文件的创建
File WriteFile = new File(realpath);
try {
//根据File初始化IO
fo = new FileOutputStream(WriteFile);
//把文件的数据封装到byte[]
buff = uploadfile.getFileData();
//文件的写入数据
fo.write(buff);
//缓存的同步IO和系统
fo.flush();
//文件上传成功,保存数据到数据库
iFileImportServer.importFile(fileList);
} catch (FileNotFoundException e) {
//抛出异常FileNotFoundException
e.printStackTrace();
} catch (IOException e) {
//抛出异常IO
e.printStackTrace();
}
//页面跳转到/form/read.jsp
return mapping.findForward("read");
}
}报严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.shine.struts.action.FileUploadAction.execute(FileUploadAction.java:71)
但是我检查这一行,看不出什么错误,请高手帮我看看!!!
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import javax.servlet.ServletContext;
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;import com.shine.model.FileList;
import com.shine.server.IFileImportServer;
import com.shine.struts.form.FileUploadForm;/**
*
* @author luhaihua
* 这个Action 是实现文件的上传功能,采用了Struts自带的upload的功能
*
*/
public class FileUploadAction extends Action {
//IFileImportServer对象的注入
public IFileImportServer iFileImportServer; public void setFileImportServer(IFileImportServer fileImportServer) {
iFileImportServer = fileImportServer;
} public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//FileUploadForm 的初始化
FileUploadForm uploadForm = (FileUploadForm) form;
//FileList对象的初始化
FileList fileList = new FileList();
//文件流输出的初始化
FileOutputStream fo = null;
byte[] buff = null;
//获取上传文件的信息对象
FormFile uploadfile = uploadForm.getUploadfile();
//获取上传文件的文件名
String fileName = null;
fileName = uploadfile.getFileName();
//保存到hibernate映射表的对象
fileList.setFilename(fileName); ServletContext sc = servlet.getServletContext();
//获取文件上传的完全路径
String realpath = sc.getRealPath("/upload/" + fileName);
//保存到对象中
fileList.setFilepath(realpath);
//文件的创建
File WriteFile = new File(realpath);
try {
//根据File初始化IO
fo = new FileOutputStream(WriteFile);
//把文件的数据封装到byte[]
buff = uploadfile.getFileData();
//文件的写入数据
fo.write(buff);
//缓存的同步IO和系统
fo.flush();
//文件上传成功,保存数据到数据库
iFileImportServer.importFile(fileList);
} catch (FileNotFoundException e) {
//抛出异常FileNotFoundException
e.printStackTrace();
} catch (IOException e) {
//抛出异常IO
e.printStackTrace();
}
//页面跳转到/form/read.jsp
return mapping.findForward("read");
}
}报严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.shine.struts.action.FileUploadAction.execute(FileUploadAction.java:71)
但是我检查这一行,看不出什么错误,请高手帮我看看!!!
解决方案 »
- 没有用spring的时候应该如何管理实例?
- 请教高手程序移植问题
- 有关Eclipse中配置Tomcat过程中出现了问题
- 各位大侠请留步,帮个忙。刚学JSP。找了个源码。。。。
- jsp调用servlet页面时,可否把servlet页面的toolbar,menubar等去掉?
- 谁做过jb9+weblogic8.1下的taglibs开发呀?
- Strust中*.properties的位置
- jb7中的webapp的作用是什么?我的程序编译通过,但不能正确运行。程序报告找不到servlets.
- 请大家讨论一下Web Component的几种开发方式,并且分析各种方式的利弊。我所知道的Jsp的Taglib以及HTC组件都可以!
- 连接数据库的问题,急,SOS!
- 请教:javaweb服务端处理跨站脚本方案
- ajax自动完成功能用哪个插件支持中文最好,类似百度的哪种
public IFileImportServer iFileImportServer; public void setFileImportServer(IFileImportServer fileImportServer) {
iFileImportServer = fileImportServer;
}
应该是iFileImportServer没有注入,检查你的spring配置文件。