分类:
2008-08-21 14:05:07
在用Struts上传文件时,遇到了javax.servlet.ServletException: BeanUtils.populate异常。我的ActionServlet并没有用到BeanUtils这些工具类。感觉很奇怪。后来仔细检查代码发现是在jsp文件里的form忘了加enctype="multipart/form-data" 了。加上之后,果然没有异常了。所以写程序遇到错误或异常应该从多方面考虑问题存在的可能性,想到系统提示信息以外的东西。
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1254)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.contract.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
root cause
java.lang.IllegalArgumentException: argument type mismatch sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789) org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684) org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713) org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019) org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808) org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1252) org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:821) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) com.contract.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37) 是数据库中某字段的类型与表单中的string类型不匹配。(表单中要用string类型)
例如,如果你的数据库中的字符类型是date,在读取这个数据时需要用到格式转换,可以用DateFormat的format方法
String str_date = DateFormat.getDateInstance.format(date);
javax.servlet.ServletException: BeanUtils.populate2007-08-17 17:46
javax.servlet.ServletException: BeanUtils.populate异常可能的情况是: 1.JSP页面是STRING 类型的,如果ACTIONFORM里头的数据定义成别的类型,就会报这个错误. 2.JSP页面的字段什么写错了.. |