Struts2 MVC底层的简单实现(2)

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,为了写跳转链接进行验证:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a26a5b19d2695f28bb654492bf46572e.html