対応するActionForm
の間でデータがやり取りされることを期待して、あるアクションから別のアクションにリダイレクトしようとしました。最初のアクションはブラウザから要求を受け取り、データフィールドを出力し、別のアクションに転送します。別のアクションは、同じフィールドを出力してJSPにリダイレクトします。Java Struts 1:アクションからアクションに進む。 ActionFormsを介したデータの受け渡し
ActionTo
が正しくない値を出力しています。そのcommonInt
のデフォルト値は0
ですが、35
と予想しています。ここで
は代表例です。
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");
}
}
およびActionFormは、以下のとおりです。
public class FormA extends ActionForm {
public int intA;
public int commonInt;
}
public class FormB extends ActionForm{
public int intB;
public int commonInt;
}
マッピング:
<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>
はこれを達成する方法はありますか?または両方の形式が同じである必要がありますか?
私たちが試した回避策は、要求を通過させることでしたが、大きくなり、乱雑になる可能性があります。
私はこれの長さをお詫び申し上げます。 – Tom