action 的定义方式
一、调用action的自定义方法1;
java文件件,包含execute方法。
<constant name="struts.devMode" value="true" />
<package name="front" extends="struts-default" namespace="/front">
<action name="index" class="com.bjsxt.struts2.front.action.IndexAction1">
<result name="success">/index.jsp</result>
</action>
</package>
标签中的class属性是表示action的对应的类(这个类是一个普通Java类),当访问这个action时会创建这个类成为一个对象,然后执行这个对象中的execute方法()(execute方法返回类型为String)。
第一种:Action 普通Java类
public class IndexAction1 {
public String execute() {
return "success";
}
}
二、调用action的自定义方法2;
实现Action接口
第二种:Action 实现com.opensymphony.xwork2.Action接口,这个接口中定义了一些常量和一个execute方法,我们重写execute()方法就可以了。
import com.opensymphony.xwork2.Action;
public class IndexAction2 implements Action {
@Override
public String execute() {
//return "success";
return this.SUCCESS; //SUCCESS常量值为:"success"
}
三、调用action的自定义方法3;
ƒ继承ActionSupport类(推荐)
第三种:Action 继承com.opensymphony.xwork2.ActionSupport类,而这个类又实现了com.opensymphony.xwork2.Action接口,我们重写execute()方法就可以了。
i
mport com.opensymphony.xwork2.ActionSupport;
public class IndexAction3 extends ActionSupport {
@Override
public String execute() {
//return "success";
return this.SUCCESS;//SUCCESS常量值为:"success"
}
}
注:第三种Action是我们需要使用的方式。它帮我封装了许多其它有用的方法,直接拿来使用。