Java Struts 1: adelante de acción en acción. Pasar datos a través de ActionForms
Hemos estado tratando de redirigir de una acción a otra, con la esperanza de que los datos se pasen entre las correspondientesActionForm
frijoles. La primera acción recibe una solicitud del navegador, imprime un campo de datos y lo reenvía a otra acción, que imprime el mismo campo y redirige a un JSP.
El problema es eseActionTo
está imprimiendo un valor incorrecto: sucommonInt
tiene un valor predeterminado de0
, mientras esperamos35
.
Aquí hay un ejemplo representativo:
public class ActionFrom extends DispatchableAction{
public ActionForward send(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response){
FormA formA = (FormA)form;
formA.commonInt = 35;
System.out.println("sent: "+formA.commonInt);
return mapping.findForward("send");
}
}
public class ActionTo extends DispatchableAction{
public ActionForward recv(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response){
FormB formB = (FormB)form;
System.out.println("recv= "+formB.commonInt);
return mapping.findForward("send");
}
}
Y actionForms son:
public class FormA extends ActionForm {
public int intA;
public int commonInt;
}
public class FormB extends ActionForm{
public int intB;
public int commonInt;
}
Mapas:
<action path="/from" type="EXPERIMENT.ActionFrom" name="formA" scope="request"
input="something.jsp" parameter="dispatch" unknown="false" validate="false">
<forward name="send" path="/to.do?dispatch=recv" redirect="false"/>
</action>
<action path="/to" type="EXPERIMENT.ActionTo" name="formB" scope="request"
input="something.jsp" parameter="dispatch" unknown="false" validate="false">
<forward name="send" path="/login.do" redirect="false"/>
</action>
¿Hay alguna manera de lograr esto? ¿O ambas formas deberían ser iguales?
a solución que probamos fue pasar las cosas a través de la solicitud, pero puede ser grande y desordenada.