使用 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');
然后提交表单。
我有一个操作,在操作本身验证错误后将发送重定向到 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');
然后提交表单。