Annotation Interface OnDoubleSubmission


二重サブミットを防止するInterceptor

業務アクションハンドラのメソッドに付与することで、二重サブミット(同一リクエストの二重送信)のチェックを行う。

本インターセプタを使用するためには、トークン設定が必要である。 トークン設定はトークンの生成とHTMLへの埋め込みがある。 トークンの生成はUseTokenでできる。 HTMLへの埋め込みはリクエストに格納されたトークンをテンプレートエンジンでinput要素を組み立てればよい。 Thymeleafの例を示す。

<input type="hidden" name="nablarch_token" th:value="${nablarch_request_token}"/>

JSPを使用している場合はn:formタグでトークンを設定できる。

     <n:form useToken="true">
     <n:submit type="button" value="Submit" uri="/XXXXX" allowDoubleSubmission="false">
     </n:form>
 
本インターセプタは、業務アクションハンドラに次のように実装する。
     @OnDoubleSubmission(path = "XXX.jsp")
     @OnError(type = ApplicationException.class, path = "forward://XXX.html")
     public HttpResponse handle(HttpRequest req, ExecutionContext ctx) {
         // 省略
     }
 
Author:
Kiyohito Itoh
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    OnDoubleSubmissionアノテーションのインターセプタ。
    トークンをチェックし、二重サブミットの場合は指定された画面遷移を行うためのHttpResponseを返す。
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    二重サブミットと判定した場合の遷移先画面に表示するエラーメッセージに使用するメッセージIDを返す。
    個別にメッセージIDを変更する場合に指定する。
    デフォルトでは、アプリケーション設定一覧表_presetで設定したエラーメッセージが使用される。
    二重サブミットと判定した場合の遷移先のリソースパスを返す。
    個別に遷移先を変更する場合に指定する。
    リソースパスは必須項目であり、指定しなかった場合はNullPointerExceptionが発生する。
    int
    二重サブミットと判定した場合のレスポンスステータスを返す。 個別にレスポンスステータスを変更する場合に指定する。 デフォルトでは、BasicDoubleSubmissionHandlerのフィールドに定義されている400を返す。
  • Element Details

    • path

      String path
      二重サブミットと判定した場合の遷移先のリソースパスを返す。
      個別に遷移先を変更する場合に指定する。
      リソースパスは必須項目であり、指定しなかった場合はNullPointerExceptionが発生する。
      Default:
      ""
    • messageId

      String messageId
      二重サブミットと判定した場合の遷移先画面に表示するエラーメッセージに使用するメッセージIDを返す。
      個別にメッセージIDを変更する場合に指定する。
      デフォルトでは、アプリケーション設定一覧表_presetで設定したエラーメッセージが使用される。
      Default:
      ""
    • statusCode

      int statusCode
      二重サブミットと判定した場合のレスポンスステータスを返す。 個別にレスポンスステータスを変更する場合に指定する。 デフォルトでは、BasicDoubleSubmissionHandlerのフィールドに定義されている400を返す。
      Default:
      -1