DOM4J读XML,可实现自定义MVC框架(一)

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;
}
}
望各位提出意见 !!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值