【发布时间】:2009-11-26 15:19:50
【问题描述】:
我有一个关于 struts2 值堆栈的问题。假设我有一个名为 RegisterAction 的 Action 类,它的执行方法如下:
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 的动作类。也就是说,在注册页面,用户点击提交,在RegisterAction的execute方法中,我们将“测试字符串”压栈。然后我们去success.jsp。 success.jsp 有一个提交按钮,可将我们定向到 TestAction#testMethod。在TestAction#testMethod 中,我在RegisterAction#execute 中压入堆栈的值还在吗?我怎么才能得到它?我单步执行了 Eclipse 调试器,但没有看到值。
谢谢。
【问题讨论】:
标签: java struts2 valuestack