Struts2 MVC底层的简单实现

一直想写Struts2的底层实现,酝酿了两个星期,今天把它实现。
首先,我们在运用的时候都会使用action,实现跳转,下面我们写一个UserAction:
public class UserAction {
    public String toAddUser(){
        return "success";
    }
                                                                                                                                                                                                                                                       
    public String addUser(){
        return "adduser";
    }
}

我们在使用Struts2的时候,一个很重要的配置文件是:struts.xml,因此我们需要读取它,知道他里面的内容,java解析xml我写过了一篇文章,可以去看看。

下面我们写一个配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<struts>
  <package namespace="/user" >
      <action >
          <result>/success.jsp</result>
          <result>/addUser.jsp</result>
      </action>
  </package>
</struts>

之后我们就需要去读取这个配置文件,但是之前我们需要我们需要建立几个实体类去存储这些元素,由外到内排列:
1.package的实体类

import java.util.List;
public class PackageEntity {
                                                                                                                                                                                                           
    private String name;
    private String namespace;
    private List<ActionEntity> actions;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getNamespace() {
        return namespace;
    }
    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }
    public List<ActionEntity> getActions() {
        return actions;
    }
    public void setActions(List<ActionEntity> actions) {
        this.actions = actions;
    }
}

private List<ActionEntity> actions;是吧action实体类的内容放到package中。
2.action的实体类

import java.util.List;
public class ActionEntity {
    private String name;
    private String classname;
    private List<ResultEntity> results;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getClassname() {
        return classname;
    }
    public void setClassname(String classname) {
        this.classname = classname;
    }
    public List<ResultEntity> getResults() {
        return results;
    }
    public void setResults(List<ResultEntity> results) {
        this.results = results;
    }
}

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

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