mvc.xml:
<?xml version="1.0" encoding="UTF-8"?>
<mvc><action name="login.action" class="action.LoginAction"/>
<action name="create.action" class="action.CreateAction"/>
</mvc>
mvcHelp:
package util;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
import action.IActionHandller;
//用于读取XML的相关信息
public class XmlHelp
{
public static HashMap<String,IActionHandller> getData()
{
SAXReader reader =new SAXReader();
//通过文件流的方式读取XML文件并转换为Document对象
//内存中表示文件的对象
HashMap<String,IActionHandller> map =new HashMap<String,IActionHandller>();
try
{
Document document = reader.read(XmlHelp.class.getResourceAsStream("/mvc.xml"));
Element root = document.getRootElement();
// iterate through child elements of root
for (Iterator i = root.elementIterator(); i.hasNext(); )
{
Element element = (Element) i.next();
System.out.println("test");
String actionName="";
IActionHandller actionHandller=null;
for(int j=0,size=element.attributeCount();j<size;j++)
{
Attribute node =element.attribute(j);
//System.out.println("name:"+node.getName()+"value:"+node.getText());
if(node.getName().equals("name"))
{
actionName=node.getText();
}
if(node.getName().equals("class"))
{
try
{
actionHandller = (IActionHandller)Class.forName(node.getText()).newInstance();
}
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);
}
}
catch (DocumentException e)
{
e.printStackTrace();
}
return map;
}
}