Java支柱1:从一个动作前进到另一个动作。通过操作表单传递数据
我们一直在尝试从一个操作重定向到另一个操作,希望数据可以在相应的bean之间传递。第一个操作接收来自浏览器的请求,打印一个数据字段,并将其转发到另一个操作,该操作打印相同的字段并重定向到 JSP。ActionForm
问题是打印的值不正确 - 它的默认值为 ,而我们期望 。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");
}
}
而 actionForms 是:
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>
有没有办法做到这一点?还是两种形式应该相同?
我们尝试的解决方法是通过请求传递内容,但它可能会变得又大又乱。