private List<ResultEntity> results;是把result的实体类放到action中。
3.result的实体类
public class ResultEntity {
private String name;
private String page;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
}
page是指后面的jsp。
经过两个list就把配置文件中所有的元素集中到package中,便于下面的跳转。
下面写一个配置的工具类:
public class ConfigUtils {
//new一个package的对象,便于调用元素
public static PackageEntity pe=new PackageEntity();
public static void config(){
SAXReader reader=new SAXReader();
try {
//读取struts.xml
Document doc=reader.read(Thread.currentThread().getContextClassLoader().getResourceAsStream("struts.xml"));
//读取根元素
Element root=doc.getRootElement();
//得到根元素下的节点元素
Element packageElement=root.element("package");
List<ActionEntity> actions=new ArrayList<ActionEntity>();
pe.setName(packageElement.attributeValue("name"));
pe.setNamespace(packageElement.attributeValue("namespace"));
//得到根元素下的节点元素
List<Element> listActions=packageElement.elements("action");
for(Element actionElement:listActions){
ActionEntity ae=new ActionEntity();
//得到子节点
ae.setName(actionElement.attributeValue("name"));
ae.setClassname(actionElement.attributeValue("class"));
//得到根元素下的节点元素
List<Element> resultElements=actionElement.elements("result");
List<ResultEntity> results=new ArrayList<ResultEntity>();
for(Element resultEle:resultElements){
ResultEntity re=new ResultEntity();
//得到子节点
re.setName(resultEle.attributeValue("name"));
re.setPage(resultEle.getText());
results.add(re);
}
ae.setResults(results);
actions.add(ae);
}
pe.setActions(actions);
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
写一个index.jsp,为了写跳转链接进行验证: