Hello,friends!

loocao

myJavaWorld

BlogJava 首页 新随笔 联系 聚合 管理
  13 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
有这样一段代码:
            LazyDynaBean ll = new LazyDynaBean();
            
try {
                BeanUtils.populate(ll, request.getParameterMap());
            }
 catch (IllegalAccessException e) {
                e.printStackTrace();
            }
 catch (InvocationTargetException e) {
                e.printStackTrace();
            }

            Map params 
= ll.getMap();
以前运行过几次,都没什么问题.但是最近一个朋友用的时候却碰到了异常.
异常信息如下:

java.lang.IllegalArgumentException: No bean specified
 at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
 at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:937)
 at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
 at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
 at com.accp.t02.vss02.service.web.action.CstServiceAction.searchForDispatch(CstServiceAction.java:149)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
 at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at com.accp.t02.vss02.filter.LanguageFilter.doFilter(LanguageFilter.java:21)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
 at java.lang.Thread.run(Thread.java:619)

我查来查去..始终觉得不是这段代码的问题
后来经过本人的不懈努力,,终于找到了问题的根源
原来BeanUtils.populate会自动解释传进来的参数..比如传进来的参数是
aa.bb,那么他就去找bean的aa属性中的bb属性...
而上面的代码使用的是一个map.没有aa.不能自动填充它的bb属性..就报了没有bean定义的异常..
解决该异常的方法:
1.将页面的参数名改为不带"."的参数
2:在map中添加需要的bean


phyeas 2008-07-10 22:23 发表评论

文章来源:http://www.blogjava.net/phyeas/archive/2008/07/10/214131.html
posted on 2008-07-10 22:23 loocao 阅读(1114) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: