javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
这个错误可能是因为ActionForm中的字段是Date类型的,而前台使用的是一个普通的字符串,所以当Action使用BeanUtils.populate进行转换时,会发生这个错误,同样的错误可能还有其它的对象类型也会出现。
javax.servlet.ServletException: BeanUtils.populate
在做文件上传的时候遇到这个异常:javax.servlet.ServletException: BeanUtils.populate
解决:在<html:form action="" method="">中加上 enctype="multipart/form-data"的定义
<html:form action="" method="post" enctype="multipart/form-data">
public class FileUploadAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
FileUploadForm fileUploadForm = (FileUploadForm) form;// TODO Auto-generated method stub
ActionErrors errors=new ActionErrors();
//存储当前servlet的全路径,然后在其路径上加上/file/'ZH',是为了给用户定位文件存储的物理路径
String dir=this.getServlet().getServletContext().getRealPath("/images");
FileUploadForm fileUpload=(FileUploadForm)form;//读取用户的上传文件
FormFile file=fileUpload.getFile();
if(file==null)
{
errors.add("fail",new ActionError("upload fail"));
return (mapping.findForward("error"));
}
String fname=file.getFileName();
float silesize=(float)(file.getFileSize()/1024.0);//读取文件大小
InputStream streamIn=null; //定义输入流的引用
OutputStream streamOut=null; //定义输出流的引用
try
{
streamIn=file.getInputStream(); //获取文件流
streamOut=new FileOutputStream(dir+"/"+fname); //新建输出流对象
int bytesRead=0;
byte[] buffer=new byte[8192];
//开始保存文件
while((bytesRead=streamIn.read(buffer,0,8192))!=-1)
{
//把读取进来的数据保存到缓冲区,然后再输出到文件中
streamOut.write(buffer,0,bytesRead);
}
}
catch(Exception e)
{
return (mapping.findForward("error"));
}
file.destroy(); //释放被读取的文件
return (mapping.findForward("success"));
}
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/69118.html