Ответ 1
Да. Вы можете перенаправить, и вы можете цеплять. Перенаправление начинается с нуля, это похоже на то, как вы вызывали другое действие в первый раз, когда цепочка сохраняет значения в стеке значений и добавляет переменные нового действия.
Переслать:
<action name="newRedirect" >
<result type="redirect">/formsearch.action</result>
</action>
Цепочка:
<action name="newRedirect" >
<result type="chain">formsearch</result>
</action>
В качестве удобства тип результата перенаправления можно изменить на тип результата "redirectAction"... который позволяет нам написать:
<action name="newRedirect" >
<result type="redirectAction">formsearch</result>
</action>
Последнее, вероятно, то, что вы хотите.
Теперь предупреждение, переадресация цепочек/действий происходит там с помощью инструкции "goto". Не зло, но легко злоупотреблять, вам, вероятно, следует искать движущуюся логику (логику, определяющую, какое действие вызывать от нескольких к перехватчику), или если логика в основном связана с настройкой, то некоторый тип класса утилиты, который вызывается метод подготовки действий (или в метод подготовки полностью)... Если действие требует параметров перед вызовом команды подготовки, используйте параметр paramsPrepareParamsStack.