大大毛 的笔记

  DDM's Note

哪怕没有办法一定有说法,
就算没有鸽子一定有乌鸦,
固执无罪 梦想有价,
让他们惊讶.

posts - 14, comments - 23, trackbacks - 0, articles - 58
   :: 首页 ::  :: 联系 ::  :: 管理

Digester类的简单使用方法

Posted on 2006-07-20 23:57 大大毛 阅读(2243) 评论(0)  编辑  收藏 所属分类: Struts

用一个小实例演示:
         该例子将演示:读者正在读书的情况(读的什么书,各读了多少章节)

   .需要解析的数据XML

XML文件

   . 需要用到的类:

Reader类

Book类

Chapter类

测试(演示使用方法):

测试用例


运行效果:
   姓名:大大毛
   共读书:2本
   *****************************
   书名:精通Struts       作者:孙卫琴
   ------------------------------
   共读3章
   第1章    Struts与Java Web应用简介
   第2章    Struts应用:helloapp应用
   第3章    Struts应用的需求分析与设计
   ------------------------------
   书名:Hibernate开发指南       作者:夏昕
   ------------------------------
   共读1章
   第1章    Hibernate初识
   ------------------------------

   从测试用例中可以看出,Digester不光解析了XML所含的数据并对照新建了对象,而且还复原了对象之间的关系(一个树的结构)


Digester类常用方法:

addObjectCreate(String rule,Class  class )

   该方法用于构造指定类的对象,
   构造时机:
发现String rule规则所指定的节点

addSetProperties(String rule)

   该方法用于设置对象的属性,
   设置方法:取String rule规则所指定标签的属性 一一对应 的调用对象的setter,注意对象属性的名称必须与XML中标签属性名称一致,可一次设置多个属性
   设置时机:发现String rule规则所指定的节点;

addBeanPropertySetter(String rule)

   该方法的作用及使用方法类似于addSetProperties,只不过它是用String rule规则所指定标签的值 来 调用对象的setter;

addCallMethod(String rule,String methodName, int  paraNumber)

   该方法同样是设置对象的属性,但是方式更加灵活,不需要对象具有setter
   设置方法:取String rule规则指定标签的属性  来 调用对象的方法(String methodName参数即是需要调用的方法名),int paraNumber参数是表示方法需要的参数个数
   注意:当paraNumber = 0时,可以单独使用(表明为标签的值来调用),不然需要配合addCallParam方法

addCallParam(String rule, int  paraIndex,String attributeName)

   该方法与addCallMethod配合使用
   设置方法:取String rule规则指定标签的属性值来调用方法
   参数:
      int paraIndex:表明需要填充的方法形参序号,从 0 开始,方法由addCallMethod指定
      String attributeName:指定标签属性名称

addSetNext(String rule,String methodName)

   该方法用于指定下一次出现该标签时,调用父对象的方法名,与addObjectCreate方法相呼应(不一定会对应,除非是push了Root元素)
   流程:
      1.新建当前层元素的对象,相当于一个addObjectCreate
      2.用新建的对象作为参数去调用父对象的指定方法(方法名由String methodName指定)
   作用:
      可以复原标签所表现出来的层次关系

使用Digester所需要的包:
   1. commons-beanutils.jar
   2. commons-collections.jar
   3. commons-digester.jar
   4. commons-logging.jar
  如果安装了Struts框架,那么这些包就都有了

使用注意事项:
   1.Digester类调用的顺序,必须与XML数据文件绝对一致;
   2.Digester类依赖于JavaBean规范,类必须符合规范;
   3.XML文件中标签/属性的名称必须与Bean中的一致(包括大小写);


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


网站导航:
 

i am ddm