Я полагаю, что это очень хорошо описано в документации Struts2. Все, что вам нужно сделать, это сделать
<action name="scopea" class="ScopeActionA">
<result name="success" type="dispatcher">/jsp/test.jsp</result>
<interceptor-ref name="basicStack"/>
<interceptor-ref name="scope">
<param name="key">funky</param>
<param name="session">person</param>
<param name="autoCreateSession">true</param>
</interceptor-ref>
</action>
<action name="scopeb" class="com.mevipro.test.action.ScopeActionB">
<result name="success" type="dispatcher">/jsp/test.jsp</result>
<interceptor-ref name="scope">
<param name="key">funky</param>
<param name="session">person</param>
<param name="autoCreateSession">true</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/>
</action>
Все, что вам нужно, это позаботиться о том, чтобы у вас был получатель в ActionA и тому подобное.сеттер в действии.Кроме того, вы должны использовать ключевой параметр, чтобы убедиться, что вы сообщаете Struts2, какое действие получает какие объекты
Подробнее об этом читайте в официальной документации Перехватчик Scope Struts2
Я предпочитаю ScopeПерехватчик только тогда, когда мне нужно разработать мастер-подобную функциональность, поскольку он будет обрабатывать другие вещи, такие как блокировка на уровне сеанса.Если это не ваше требование, есть другой способ передачи параметров, например помещение объекта в сеанс и получение объекта из сеанса при втором действии