« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9690985 建立时间:2004年12月20日 |

| |
[opensource]使用Digester从xml生成bean 原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2006/8/17 16:00:22 |
Digester是Struts的一个项目,目的是不直接使用SAX解析struts-config.xml.Digester 依靠其他3个apache的组件,BeanUtils ,Collections ,Logging .由于使用SAX,Digester也是event-driven manner.对于存储的POJO,Digester使用stack存储和重新得到POJO.下面给出个例子POJO类public class IDNode { private String name; private String idname; public String getIdname() { return idname; } public void setIdname(String idname) { this.idname = idname; } public String getName() { return name; } public void setName(String name) { this.name = name; }
}xml文件<?xml version="1.0" encoding="UTF-8"?><root> <idconfig> <name>goute</name> <name>bbaa</name> </idconfig> <nodes> <node> <name>goute</name> <idname>hid</idname> </node> </nodes></root>处理的java文件public class ConfigSingle { private static volatile ConfigSingle instance;
public HashMap<String, IDNode> arraykey = new HashMap<String, IDNode>();
public static ConfigSingle getInstance() { if (instance == null) { synchronized (ConfigSingle.class) { if (instance == null) instance = new ConfigSingle(); } } return instance; }
private ConfigSingle() { try {
Digester digester = new Digester(); // Push the current object onto the stack digester.push(this); /*创建对象 */ digester.addObjectCreate("root/nodes/node", IDNode.class); digester.addBeanPropertySetter("root/nodes/node/name");
digester.addBeanPropertySetter("root/nodes/node/idname", "idname");
digester.addSetNext("root/nodes/node", "addNode"); /* 读取流流文件*/ InputStream is2 = XmlComnHandle.class .getResourceAsStream("/config.xml"); digester.parse(is2); } catch (FactoryConfigurationError e) { System.out .println("Error occurred obtaining Document Builder Factory."); } catch (Exception e) { e.printStackTrace(); } }
public void addNode(IDNode stud) {
arraykey.put(stud.getName(), stud); }
} |
|
回复:使用Digester从xml生成bean 原创空间, 软件技术, 电脑与网络
凯(游客)发表评论于2007/8/22 11:02:07 |
|
回复:使用Digester从xml生成bean 原创空间, 软件技术, 电脑与网络
小春(游客)发表评论于2007/7/2 18:28:02 |
你好,你能把完整的代码,包括XmlComnHandle类的内容发给我吗,我的项目需要你这篇文章讲的功能我的油箱是trademark_freedom@hotmail.com |
|
» 1 »
|