使用 sendRedirect 时表单数据丢失 Struts 1.x

Form data lost when using sendRedirect Struts 1.x

我有一个操作,在操作本身验证错误后将发送重定向到 URL,但所有表单数据都没有显示。

public ActionForward doAction(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {

    String id = 123;
    if (!validate()) {
       addErrorMessage(request, "FAIL");
       request.sendRedirect("/myUrl.do?id=" + id);
       return null;
    }

// else proceed with stuff
}

现在,当我检查浏览器时,URL 是正确的,但页面上的所有表单数据都没有显示。如果我只是重新加载页面,表单数据将再次显示。是什么原因造成的?

myUrl.do 将转到另一个操作,而该操作不会获取表单值。

试试 ActionRedirect

 
    ActionRedirect redirect = new ActionRedirect( mapping.findForward(keep that url in the constant and use it here));
    // Also can can add parameter to it
    // redirect.addParameter(param_name, param_value);
    return redirect;

我通过使用 JavaScript.

将表单操作设置为我想转到的操作来解决它
$('myForm').writeAttribute('action', '/myAction.do');

然后提交表单。