我有一个关于 struts2 值堆栈的问题。假设我有一个名为 Action 的类RegisterAction
,它有一个执行方法,如下所示:
public String execute() {
ValueStack stack = ActionContext.getContext().getValueStack();
stack.push(new String("test string"));
return SUCCESS;
}
我的 struts.xml 看起来像这样:
<struts>
<package name="default" extends="struts-default">
<action name="*Register" method="{1}" class="vaannila.RegisterAction">
<result name="populate">/register.jsp</result>
<result name="input">/register.jsp</result>
<result name="success">/success.jsp</result>
</action>
<action name="*Test" method="{1}" class="vaannila.TestAction">
<result name="test">/test.jsp</result>
<result name="success">/success2.jsp</result>
</action>
</package>
</struts>
因此,在该类中执行 execute 方法后,控制将流向 success.jsp。
我的问题是:
1)我如何获得我在堆栈中推入的值success.jsp
?
2)假设success.jsp
我有一个<s:submit method="testMethod" />
重定向到一个名为的动作类TestAction
。也就是说,从注册页面,用户点击提交,在我们的execute方法中,RegisterAction
我们将“测试字符串”压入栈中。然后我们去success.jsp
。有success.jsp
一个提交按钮,指示我们到TestAction#testMethod
. 在TestAction#testMethod
中,我压入堆栈的值RegisterAction#execute
还在吗?我怎么才能得到它?我单步执行了 Eclipse 调试器,但看不到值。
谢谢。