1.mvc.xml 代码
<?xml version="1.0" encoding="UTF-8"?>
<mvc>
<action name="login.action" class="com.gxa.bj.action.LoginAction"/>
<action name="product.action" class="com.gxa.bj.action.CheckProductAction"/>
<action name="Reg.action" class="com.gxa.bj.action.RegAction"/>
</mvc>
--------------------------------------------------------------------------------------------------------
2.读取mvc.xml代码的数据的代码
package com.gxa.bj.util;
import java.util.HashMap;
import java.util.Iterator;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
import com.gxa.bj.action.IActionHandller;
/**
* 用以读取mvc.xml的相关数据信息
* @author
*
*/
public class XmlHelper {
/**
* 把xml里的数据转换成集合中的数据
* @return
*/
public static HashMap<String, IActionHandller> getData() {
SAXReader reader = new SAXReader();
HashMap<String, IActionHandller> map = new HashMap<String, IActionHandller>();
try {
// 通过文件流的方式读取XML文件并转换成Document对象。内存中表示该文件的对象。
Document document = reader.read(XmlHelper.class
.getResourceAsStream("/mvc.xml"));
Element root = document.getRootElement();// 找到根元素
for (Iterator<?> i = root.elementIterator(); i.hasNext();) {//迭代器,依次找元素
Element element = (Element) i.next();
String actionName="";
IActionHandller actionHandller =null;
for (int j = 0, size = element.attributeCount();j < size; j++) {
//读取属性值
Attribute node = element.attribute(j);
//找到Attribute属性
if(node.getName().equals("name")){
actionName = node.getText();//取name的值
}
if(node.getName().equals("class")){
try {
actionHandller = (IActionHandller) Class.forName(node.getText()).newInstance();
//取class的值
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
map.put(actionName, actionHandller);//加到map中去
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return map;
}
/*public static void main(String[] args){
getData();
}*/
}