Chúng tôi đã cố gắng chuyển hướng từ hành động này sang hành động khác, hy vọng dữ liệu đó sẽ được chuyển giữa các hạt đậu tương ứng ActionForm
tương ứng. Hành động đầu tiên nhận được yêu cầu từ trình duyệt, in một trường dữ liệu và chuyển tiếp nó đến một hành động khác, nó in cùng một trường và chuyển hướng đến một JSP.Java Struts 1: chuyển tiếp từ hành động đến hành động. Truyền dữ liệu qua ActionForms
Vấn đề là ActionTo
đang in giá trị không chính xác - commonInt
có giá trị mặc định là 0
, trong khi chúng tôi mong đợi 35
.
Dưới đây là một ví dụ đại diện:
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");
}
}
Và ActionForms là:
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>
Có cách nào để thực hiện điều này? Hoặc cả hai hình thức phải giống nhau?
Cách giải quyết mà chúng tôi đã cố gắng là vượt qua mọi thứ thông qua yêu cầu, nhưng nó có thể trở nên lớn và lộn xộn.
Tôi xin lỗi vì thời lượng này. – Tom