Wir haben versucht, von einer Aktion zu einer anderen umzuleiten, in der Hoffnung, dass Daten zwischen entsprechenden ActionForm
Beans übergeben werden. Die erste Aktion empfängt eine Anforderung vom Browser, druckt ein Datenfeld und leitet sie an eine andere Aktion weiter, die dasselbe Feld druckt und zu einer JSP weiterleitet.Java Struts 1: Von Aktion zu Aktion weiterleiten. Übergeben von Daten über ActionForms
Das Problem ist, dass ActionTo
einen falschen Wert gedruckt wird - sein commonInt
hat einen Standardwert von 0
, während wir 35
erwarten.
Hier ist ein Beispiel darstellt:
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");
}
}
Und Action sind:
public class FormA extends ActionForm {
public int intA;
public int commonInt;
}
public class FormB extends ActionForm{
public int intB;
public int commonInt;
}
Mappings:
<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>
Gibt es eine Möglichkeit, dies zu erreichen? Oder beide Formen sollten gleich sein?
Der Workaround, den wir ausprobiert haben, bestand darin, die Dinge durch die Anfrage zu leiten, aber es kann groß und unordentlich werden.
Ich entschuldige mich für die Dauer dieser. – Tom