<?xml version="1.0" encoding="UTF-8"?>
<action-controller>
<action>
<name>login</name>
<class>
<name>servlet.LoginAction</name>
<method>login</method>
</class>
<result>
<name>success</name>
<type>forward</type>
<value>login_success.jsp</value>
</result>
<result>
<name>fail</name>
<type>redirct</type>
<value>login_fail.jsp</value>
</result>
</action>
<action>
<name>register</name>
<class>
<name>servlet.RegisterAction</name>
<method>register</method>
</class>
<result>
<name>success</name>
<type>forward</type>
<value>register_success.jsp</value>
</result>
<result>
<name>fail</name>
<type>redirct</type>
<value>register_fail.jsp</value>
</result>
</action>
</action-controller>
public static Map<String, ActionBean> parseXML(String path)
throws Exception {
Map<String, ActionBean> abMap = new HashMap<String, ActionBean>();
SAXReader reader = new SAXReader();
Document doc = reader.read(new File(path));
Element root = doc.getRootElement();
List<?> actions = root.elements("action");
for (Iterator<?> iter = actions.iterator(); iter.hasNext();) {
ActionClass ac = new ActionClass();
ActionBean ab = new ActionBean();
Map<String, Result> rMap = new HashMap<String, Result>();
Element action = (Element) iter.next();
String name = action.element("name").getText();
String className = action.element("class").element("name")
.getText();
String classMethod = action.element("class").element("method")
.getText();
ac.setName(className);
ac.setMethod(classMethod);
Iterator<?> iterator = action.elementIterator("result");
while (iterator.hasNext()) {
Result res = new Result();
Element resElem = (Element) iterator.next();
res.setName(resElem.elementText("name"));
res.setType(resElem.elementText("type"));
res.setValue(resElem.elementText("value"));
rMap.put(resElem.elementText("name"), res);
}
ab.setName(name);
ab.setActionClass(ac);
ab.setAbRMap(rMap);
abMap.put(name, ab);
}
return abMap;
}