`
esffor
  • 浏览: 1372036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Digester解析XML文件和JAVA对象的映射

阅读更多
 
package cn.hxex.exam.config;

import java.util.Hashtable;

import cn.hxex.exam.exception.ExamException;

public class ExamConfig ...{
   
private Hashtable daos;
   
public ExamConfig()...{
       daos
=new Hashtable();
   }

   
public void addDao(DAOConfig bean)...{
       daos.put(bean.getId(), bean);
   }

   
   
public DAOConfig getDAOConfig(String name)...{
       DAOConfig config
=(DAOConfig)daos.get(name);
       
if(config==null)...{
           
throw new ExamException("couldn't find the bean:"+name);
       }

       
return config;
   }

}


package cn.hxex.exam.config;

import java.io.InputStream;

import org.apache.commons.digester.Digester;

public class ExamConfigUtil ...{
   
public static final String DEFAULT_CONFIG_FILE="ExamConfig.xml";
   
public static final ExamConfig MESSAGE_CONFIG;
   
   
static...{
       Digester digester
=new Digester();
       digester.setValidating(
false);
       
       
//初始化根配置对象
       digester.addObjectCreate("config""cn.hxex.exam.config.Examconfig");
       digester.addSetProperties(
"config");
       
       
//初始化DAOConfig对象
       digester.addObjectCreate("config/daos/dao""cn.hxex.exam.config.DAOConfig");
       digester.addSetProperties(
"config/daos/dao");
       digester.addSetNext(
"config/dao/dao""addDao","cn.hxex.exam.config.DAOConfig");
       
       
//读取配置文件
       ClassLoader classLoader=Thread.currentThread().getContextClassLoader();
       InputStream in
=classLoader.getResourceAsStream(DEFAULT_CONFIG_FILE);
       ExamConfig config
=null;
       
try ...{
          
if(in!=null)...{
              config
=(ExamConfig)digester.parse(in);
          }

        }
 catch (Exception e) ...{
          e.printStackTrace();
       }

        MESSAGE_CONFIG
=config;    
   }

   
   
public static ExamConfig getConfig()...{
       
return ExamConfigUtil.MESSAGE_CONFIG;
   }

   
   
public static DAOConfig getDAOConfig(String name)...{
       
return MESSAGE_CONFIG.getDAOConfig(name);
   }

   
}


<config>
    
<daos>
        
<dao id="UserDAO" type="cn.hxex.exam.dao.hibernate.UserDAOHibernate" />
        
<dao id="TeacherDAO" type="cn.hxex.exam.dao.hibernate.TeacherDAOHibernate" />
        
<dao id="TestPaperDAO" type="cn.hxex.exam.dao.hibernate.TestPaperDAOHibernate" />
        
<dao id="RoleDAO" type="cn.hxex.exam.dao.hibernate.RoleDAOHibernate" />
        
<dao id="ClassesDAO" type="cn.hxex.exam.dao.hibernate.ClassesDAOHibernate" />
        
<dao id="StudentDAO" type="cn.hxex.exam.dao.hibernate.StudentDAOHibernate" />
        
<dao id="SelectQuestionDAO" type="cn.hxex.exam.dao.hibernate.SelectQuestionDAOHibernate" />
        
<dao id="YesNoQuestionDAO" type="cn.hxex.exam.dao.hibernate.YesNoQuestionDAOHibernate" />
    
</daos>
    
<cache type="cn.hxex.exam.cache.ehcache.EHCache">
        
<property name="cachename" value="cache" />
    
</cache>
    
<sysconfig>
        
<property name="superuser" value="super,test" />
    
</sysconfig>
</config>


分享到:
评论

相关推荐

    利用commons-digester解析xml

    标题“利用commons-digester解析XML”涉及到的是Java开发中的一种处理XML文档的工具——Apache Commons Digester。这个库提供了一种方便的方式来映射XML文档结构到Java对象,从而简化了XML数据的处理过程。 Apache ...

    使用Digester解析XML文档示例

    4. **解析XML文件**:使用Digester解析XML文件,并根据定义的规则创建Java对象。 #### 五、总结 通过上述介绍可以看出,Digester是一个非常有用的工具,它可以大大简化XML解析的过程。在实际开发中,尤其是处理...

    digester解析xml的问题.pdf

    Digester 是 Apache Commons 中的一个工具类库,它用于解析 XML 文档,并根据预先定义的规则自动创建和配置 Java 对象。在上述问题中,我们看到一个 XML 文档表示了一个考试,其中包含了多个题目,每个题目有其编号...

    Digester解析XML文件

    本文将深入探讨如何使用Digester解析XML文件,以及在实际项目中如何应用。 首先,让我们了解什么是Apache Commons Digester。这是一个Java库,它的主要功能是读取XML文件,并基于一系列预先定义的规则(Rule),...

    使用Apache的Digester来解析XML文档

    5. **解析XML**:最后,使用配置好的 Digester 对象解析XML文件: ```java Root root = null; try (InputStream is = new FileInputStream("path_to_xml_file.xml")) { root = digester.parse(is); } catch ...

    java反射,Digester解析xml文档

    总结来说,Java反射提供了在运行时动态操作类和对象的能力,而Digester则是简化XML到Java对象映射的工具。两者结合使用,可以在程序运行过程中根据XML配置动态地创建和配置对象,增强了Java代码的灵活性和可扩展性。...

    digester解析XML文件实例

    学习这个实例,你不仅能够掌握如何使用Digester解析XML,还能了解到如何设计符合XML结构的Java类,以及如何定义和组织规则。这将对你的Java开发技能和处理XML数据的能力有显著提升。同时,理解Digester也能帮助你更...

    利用Digester把XML转换成为Java对象

    4. **解析XML文件**:最后,通过调用`digester.parse()`方法来解析XML文件,并将解析结果填充到Java对象中。 #### 示例代码 以下是一个简化的`deregister`方法示例,展示了如何使用Digester从XML文件中读取图表...

    Digester java解析xml

    Java中的Digester库是Apache Commons项目的一部分,它提供了一种方便的方式来解析XML文档,并将解析结果映射到Java对象模型上。这个库特别适合于创建简单的XML到Java对象的映射,而不需要编写大量的手动解析代码。在...

    digester解析xml必备包.rar

    在Digester解析XML时,BeanUtils可以用来方便地读取和设置Java对象的属性值,使得数据绑定更加灵活。 使用这些库,开发者可以创建一个XML配置文件,定义XML结构与Java对象之间的映射规则。例如,XML文件中的每个`...

    org.apache.commons.digester解析XML.rar

    这个“org.apache.commons.digester解析XML.rar”压缩包包含了一个测试工程,它演示了如何使用Digester库来解析XML文件并映射到Java对象上。下面将详细介绍这个库的功能、使用方法以及在实际开发中的应用。 1. **...

    Digester解析XML的小例子(对象嵌套)

    在Java开发中,Struts框架提供了一个强大的工具——Digester,用于解析XML文件并自动创建、配置Java对象。本文将详细介绍如何使用Digester处理具有嵌套结构的XML文档,并通过一个具体的实例——"DigesterXmlTest"来...

    Digester解析XML问题.pdf

    在示例代码中, DigesterDriver演示了如何配置 Digester来解析XML文件,创建`Catalog`对象并填充其`Book`和`Magazine`子对象,以及相关的`Article`对象。每个元素的属性通过`addBeanPropertySetter()`设置,而对象...

    digester解析xml 所需jar包

    本篇文章将详细介绍如何使用`Digester`解析XML,以及在使用过程中需要的依赖库。 首先,`Digester`的核心功能是通过定义规则来将XML元素与Java对象的属性或方法关联,这样在解析XML时,可以自动创建和填充Java对象...

    digester解析xml

    《digester解析XML详解》 在Java开发中,XML作为一种数据交换格式,广泛应用于配置文件、数据传输等场景。为了方便地将XML文档解析为Java对象,Apache组织提供了一个名为Digester的工具库,它允许开发者通过规则来...

    xml转换java对象

    通过使用Betwixt,开发者可以轻松地将XML文档解析为Java对象,或者将Java对象序列化为XML文档。这极大地简化了数据交换和持久化的过程。 在本例子中,我们使用的版本是`commons-betwixt-0.8.jar`。这个库包含了一组...

    Digester读取xml教程.rar

    《使用Digester解析XML的深度指南》 在Java开发中,处理XML文件是常见的任务,而Apache Commons Digester库提供了一种高效且便捷的方式来解析XML并将其映射到Java对象。本教程将深入探讨如何使用Digester来读取XML...

    扩展PlugIn插件解析XML

    5. 解析XML:使用 Digester 的parse()方法解析XML文件,它会根据之前设置的规则,自动创建和填充Java对象。 6. 处理结果:解析完成后, Digester 会生成一个对象树,树的根节点对应于XML文档的根元素,其他节点则是...

Global site tag (gtag.js) - Google Analytics