一.普通的POJO类(没有继承没有实现)-基本不使用
public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } }
<!-- 普通的POJO类 --> <action name="action1" class="com.struts2.web.action2.DemoAction1"/>
基本不使用
二.实现Action接口-基本不使用
import com.opensymphony.xwork2.Action; /** * action类的编写2:实现action接口 * @author NEWHOM * */ public class DemoAction2 implements Action { @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("DemoAction2是一个实现了Action接口的类..."); return null; } }
<!-- 实现了Action接口 --> <action name="action2" class="com.struts2.web.action2.DemoAction2" />
* Action接口中定义了5个常量,5个常量的值对应的是5个逻辑视图跳转页面(跳转的页面还是需要自己来配置),还定义了一个方法,execute方法。
* 5个逻辑视图的常量
* SUCCESS -- 成功.
* INPUT -- 用于数据表单校验.如果校验失败,跳转INPUT视图.
* LOGIN -- 登录.
* ERROR -- 错误.
* NONE -- 页面不转向.
基本不使用
三.继承ActionSupport类-经常使用
import com.opensymphony.xwork2.ActionSupport; /** * action编写3:继承ActionSupport类 * @author NEWHOM * */ public class DemoAction3 extends ActionSupport { private static final long serialVersionUID = 1L; @Override public String execute() throws Exception { // TODO Auto-generated method stub System.out.println("DemoAction3是一个继承了ActionSupport的类..."); return null; } }
<!-- 继承了ActionSupport类 --> <action name="action3" class="com.struts2.web.action2.DemoAction3"/>
ActionSupport本身继承了许多的类,利于编写代码
开发中经常使用这种方式