看代码,struct.xml
<action name="indexAction" class="info.frady.action.IndexAction"> <result name="a" type="chain"> <param name="actionName">aAction</param> <param name="namespace">/</param> </result> <result name="b" type="chain"> <param name="actionName">bAction</param> <param name="namespace">/</param> </result> </action> <action name="aAction" class="info.frady.action.AAction"> <result>a.jsp</result> </action> <action name="bAction" class="info.frady.action.BAction"> <result>b.jsp</result> </action>
定义了,三个action,indexAction里的result为a时,执行aaction,为b时,执行baction。
a.ction
package info.frady.action; import com.opensymphony.xwork2.ActionSupport; /** * @author [email protected] * Sep 9, 2012 */ public class AAction extends ActionSupport { @Override public String execute() throws Exception { return super.execute(); } }
b.action
package info.frady.action; import com.opensymphony.xwork2.ActionSupport; /** * @author [email protected] * Sep 9, 2012 */ public class BAction extends ActionSupport { private String p; public String getP() { return p; } public void setP(String p) { System.out.println("Baction里的Set方法被执行p="+p); this.p = p; } @Override public String execute() throws Exception { System.out.println("Baction里的p="+p); return super.execute(); } }
为了展示值栈被压入,baction里有打印语句
a.jsp内容
A.${p }
b.jsp内容
B.${p }
测试urlhttp://localhost:8080/indexAction.action?p=1
运行结果
A.1
http://localhost:8080/indexAction.action?p=333
结果
B. 333