在struts2中一个普通的java类只要有public String execute()这样的方法都可以配置成一个Action,另外我们可以实现Action接口来使java类成为一个Action,但通常的做法是继承ActionSupport类,这也是以后的项目中惯用的方法,也是推荐的首选方法。
动作类的一个特征就是要覆盖execute方法,只是Struts2的execute方法没有参数了,而Struts1.x的execute方法有四个参数。而且execute方法的返回值也不同的。Struts2只返回一个String,用于表述执行结果
Struts中的控制器ActionServlet实际上是委托RequestProcess对http请求进行处理的,对于客户端以.do形式的http请求,RequestProcess检查配置文件中是否有对应的action映射,如果有,则把请求交给自定义的action类处理,否则进行页面forward转换,这一切是由RequestProcess类下面的process()方法处理完成的
在项目的baseaction中对excute函数和process函数进行下面的设计。
基类的形式如下:
public class BaseAction extends ActionSupport {
public String execute()throws Exception {
if(logger.isDebugEnabled()){
logger.debug("…");
}
returnprocess();
}
String process() throwsException{
returnActionSupport.NONE;
}
}
其他所有的action都是继承了baseaction基类,对process函数进行设计实现等。