mvc_config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config-mvc>
<actions>
<action input="/adduser"
inkRealize="ccom.ray.biz.inkrealize.AddUserAction1"
ink="com.ray.biz.ink.Action1"
success="/index1.jsp"
fail="/fail1.jsp"
>
</action>
<action input="/login.jsp2"
inkRealize="com.roy.struts.action.LoginAction2"
ink="com.roy.struts.action2"
success="/index2.jsp"
fail="/fail2.jsp"
>
</action>
</actions>
</config-mvc>
package com.ray.mvc.xmlreader;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.ray.mvc.pojo.ActionModel;
/**
* 功能:使用DOM4J加载xml文件,并获取action属性列表
* 时间:2009年6月14日
* @author Ray
* @version 1.0.1
* */
public class DOM4JReadXml {
//单例模式
private static DOM4JReadXml instance = new DOM4JReadXml();
//xml文件路径
private static final String FILE_NAME="/xml/mvc_config.xml";
private Document doc;
/**
* 构造函数
* 读取xml文件
* */
public DOM4JReadXml(){
//如果doc 为空
if(doc==null){
//通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
// File file = new File(FILE_NAME);
// //测试此抽象路径名表示的文件是否是一个标准文件
// System.out.println("file.isFile()="+file.isFile());
// if(!file.isFile()){//如果不是标准文件,抛出异常
// try {
// throw new IOException("Config file is not exist. " + FILE_NAME);
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }else{
//创建SAXReader 实例
SAXReader saxReader = new SAXReader();
//设置编码为utf-8
saxReader.setEncoding("utf-8");
try {
// doc =saxReader.read(file);
doc = saxReader.read(getClass().getResourceAsStream(FILE_NAME));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// }
}
// new XmlDBReader().getXML();
}
/**
* 获得xml文件的属性列表
* @return list
* @throws Exception
*/
public List getAttributList(){
List list=new ArrayList();
//获取到 xml文件的actions 节点
Element actions = (Element) doc.selectSingleNode("/config-mvc/actions");
Iterator iterator = actions.elementIterator("action");
while(iterator.hasNext()){//如果仍有元素可以迭代,则返回 true
Element action = (Element) iterator.next();
//创建ActionModel 实例
ActionModel model=new ActionModel();
// System.out.println("input="+action.attributeValue("input"));
// System.out.println("ink="+action.attributeValue("ink"));
// System.out.println("inkRealize="+action.attributeValue("inkRealize"));
// System.out.println("fail="+action.attributeValue("fail"));
// System.out.println("success="+action.attributeValue("success"));
// System.out.println("-----------------------------------------------");
model.setInput(action.attributeValue("input"));
model.setInk(action.attributeValue("ink"));
model.setInkRealize(action.attributeValue("inkRealize"));
model.setFail(action.attributeValue("fail"));
model.setSuccess(action.attributeValue("success"));
list.add(model);
}
return list;
}
public static DOM4JReadXml getInstance(){
return instance;
}
}
望各位提出意见 !!!
分享到:
- 2009-06-16 21:14
- 浏览 1272
- 评论(0)
- 论坛回复 / 浏览 (0 / 1752)
- 查看更多
相关推荐
另外,还专门介绍了ASP.NET4 新增的功能,如MVC 和动态数据等。 《ASP.NET 4高级程序设计(第4版)》适合各层次的ASP.NET程序员阅读。 =================== 第一部分 核心概念 第1章 ASP.NET简介 1.1 ASP.NET的...
《ASP.NET 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书...
\ 第4章 程序主窗口—— QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构成的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和...
\ 第4章 程序主窗口—— QMainWindow 卢传富 Qt应用程序的主窗口是由多个部件/组件构成的框架,本章通过一个简单文本编辑器的例子,介绍了主窗口的菜单、工具条、中心部件、锚接部件和状态条,并通过Qt设计器绘制和...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...
DOM4J解析实例 412 JDOM解析实例 413 JAVA操纵XML 实例讲解 414 通过JAVA写数据到XML里面 415 内容总结 418 独立实践 418 第二十三章:HTML基础 419 学习目标 419 知识要点 420 HTML元素 420 标签属性 420 HTML基本...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...
04 做一个最简答web框架 05 MVC模式和MTV模式 06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 ...
例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。 当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望...
2.9 为本书示例准备一个模板 / 60 2.10 本章小结 / 61 第3章 调试工具及技巧 / 62 3.1 使用firebug进行调试 / 62 3.2 在ie中调试 / 76 3.2.1 使用debugbar和companion.js调试 / 76 3.2.2 使用ietester测试 / ...