返回多页表单时如何防止表单验证? STRUTS 1

时间:2014-08-14 12:53:01

标签: validation struts-1

如何在返回多页表单时阻止表单验证?我在XML中进行了验证,我希望在您点击" next" (它有效)并且当你点击后(在我的情况下是它的取消按钮)它不起作用。不幸的是在我的情况下验证发生在两种情况下.....任何想法?我很感激:)。

1 个答案:

答案 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解释了令牌会话的整个概念,以防止双重(表单)提交。