Как предотвратить проверку формы при возврате в многостраничную форму? СТОЙКИ 1

Как предотвратить проверку формы при возврате в многостраничную форму? У меня есть проверка в XML, и я хочу, чтобы она проверялась, когда вы нажимаете «Далее» (это работает), и что она не работает, когда вы нажимаете «Назад» (в моем случае это кнопка отмены). К сожалению, в моем случае проверка происходит в обоих случаях..... есть идеи? буду благодарен :)


person user2455862    schedule 14.08.2014    source источник
comment
Извините, что спрашиваю, как это вообще связано со Struts 1.x?   -  person Buhake Sindi    schedule 20.08.2014
comment
@BuhakeSindi Потому что срабатывает проверка S1?   -  person Dave Newton    schedule 20.08.2014
comment
Ой! Теперь я понимаю ОП. У него есть XML-страница проверки, которую он создал. Он хочет, чтобы проверка не срабатывала при нажатии кнопки «Назад». Сначала вопрос не имел смысла (я думал, что OP проверил файл XML).   -  person Buhake Sindi    schedule 20.08.2014


Ответы (1)


Есть способ решить эту проблему, он называется: Предотвращение двойной отправки.

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;
}

Существует руководство в Интернете., который объясняет всю концепцию сеанса токена для предотвращения двойной отправки (формы).

person Buhake Sindi    schedule 20.08.2014