1

良い一日、

Java Web アプリケーションでは、ユーザーがクリックするボタンがあり、メソッドでいくつかのロジックを実行します。doSomething()そして、ユーザーがこのボタンを5回以上クリックして(ロジックをヒットして例外をスローした場合)、チェックを行う予定です。したがって、クリック数を格納する変数を作成します。次のように私のコード:

@Session
private int count; 

    public Resolution add() throws BaseException {

      if ( count >= 5 ) {
        doSomething();
      }

      if ( true ) {
        count++;
        throw BaseValidationException();
      }

      return view( );
    }

ただし、 は のcount++後に数えるには +1 しませんthrow BaseValidationException()。しかし、 を削除すると、ボタンを 5 回クリックした後にthrow BaseValidationException()システムが実行されます。doSomething()add

Exception() をスローaddGlobalError()するか、変数値をセッションに保存しないと思います。値をdbに保存する以外にこれを克服するためのアイデアはありますか?

4

1 に答える 1

1

これは機能します。

private int count; 

    public Resolution add() throws BaseException {
       HttpSession session=request.getSession();
       int count=(Integer)session.getAttribute("count");
      if ( count >= 5 ) {
        doSomething();
      }

      if ( true ) {
        count++;

        session.setAttribute("count",count);
        throw BaseValidationException();
      }

      return view( );
    }
于 2016-08-01T05:30:22.367 に答える