У меня вопрос по стеку значений struts2. Допустим, у меня есть класс Action с именем RegisterAction
, который имеет метод execute следующим образом:
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>
Таким образом, управление будет передаваться в success.jsp после выполнения метода execute в этом классе.
Мои вопросы:
1) как получить значение, которое я поместил в стек в success.jsp
?
2) Допустим, в success.jsp
у меня есть <s:submit method="testMethod" />
, который перенаправляет в класс действий с именем TestAction
. Другими словами, со страницы «Регистрация» пользователь нажимает кнопку «Отправить», и в методе выполнения RegisterAction
мы помещаем «тестовую строку» в стек. Тогда мы идем к success.jsp
. У success.jsp
есть кнопка отправки, которая направляет нас к TestAction#testMethod
. В TestAction#testMethod
значение, которое я поместил в стек в RegisterAction#execute
, все еще там? Как я могу получить это? Я прошел через отладчик затмения, но не вижу значения.
Спасибо.