如何在返回多页表单时阻止表单验证?我在XML中进行了验证,我希望在您点击" next" (它有效)并且当你点击后(在我的情况下是它的取消按钮)它不起作用。不幸的是在我的情况下验证发生在两种情况下.....任何想法?我很感激:)。
答案 0 :(得分:0)
有一种方法可以解决这个问题,它被称为:防止双重提交。
Struts 1.x允许在调用操作后保存令牌。您需要查看的3种方法来自Struts 1.x Action
类:
resetToken
isTokenValid
saveToken
因此,在您的操作方法上,您必须执行令牌验证检查以查看此操作之前是否已执行。它没有被执行,继续你的行动。
以下是有关如何进行验证的示例:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
ActionForward forward = null;
boolean valid = isTokenValid(request);
if (!valid) {
//We HAVE NOT yet ran this action, let's execute our action.
//TODO: Complete the rest of the code.
//Map my forward
forward = .....;
//Finally, save this action for further execution.
saveToken(request);
} else {
//Forward, as usual....?
forward = .....;
}
return forward;
}
有一个tutorial online解释了令牌会话的整个概念,以防止双重(表单)提交。