JAVA技术
  当前位置:首页 > 技术支持 > JAVA技术
java.lang.NoSuchMethodException: Bean has no property named的解决方法
发布时间:2017-06-29 浏览:2458次
  

使用Degister将XML解析为Bean时,明明Bean中的属性名与XML中的节点名称一模一样,但运行时,却提示:

java.lang.NoSuchMethodException: Bean has no property named ZoneID......,这个ZoneID就是XML中的节点,在Bean中也设置属性名也为此名,并设置好对应的setter和getter方法。

原因是什么呢?

问题原因就出在这个属性名上,根据JAVA编程命名规则,属性名最好以小写字母开头,所以commons-beanutils包中关于将xml与bean的映射关系处理时,默认使用了这个规则,对于以大写开头的属性名将不认可。

只要将bean的属性名以小写字母命名即可,同时设置好digester方法中的对应关系,如:

Digester digester = new Digester();
digester.setValidating(false);

digester.addObjectCreate("DataSet/diffgr:diffgram/NewDataSet/Area", Area.class);

digester.addBeanPropertySetter("DataSet/diffgr:diffgram/NewDataSet/Area/ZoneID", "zoneID");

OK!问题解决!

 
 
    
 
 
版权所有 © 2005-2024 安徽省艾佳信息技术有限公司 皖ICP备06002923号  皖公网安备 34019202000659号
地址:安徽省合肥市蜀山区望江西路69号西湖国际广场 电话:0551-64935878 邮箱:admin@ajsoft.cn