@Documented @Target(value=METHOD) @Retention(value=RUNTIME) @Interceptor(value=OnDoubleSubmission.Impl.class) @Published public @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) {
         // 省略
     }
 | Modifier and Type | Optional Element and Description | 
|---|---|
java.lang.String | 
messageId
二重サブミットと判定した場合の遷移先画面に表示するエラーメッセージに使用するメッセージIDを返す。 
個別にメッセージIDを変更する場合に指定する。 デフォルトでは、アプリケーション設定一覧表_presetで設定したエラーメッセージが使用される。  | 
java.lang.String | 
path
二重サブミットと判定した場合の遷移先のリソースパスを返す。 
個別に遷移先を変更する場合に指定する。 リソースパスは必須項目であり、指定しなかった場合は NullPointerExceptionが発生する。 | 
int | 
statusCode
二重サブミットと判定した場合のレスポンスステータスを返す。
 個別にレスポンスステータスを変更する場合に指定する。
 デフォルトでは、 
BasicDoubleSubmissionHandlerのフィールドに定義されている400を返す。 | 
public abstract java.lang.String path
NullPointerExceptionが発生する。public abstract java.lang.String messageId
public abstract int statusCode
BasicDoubleSubmissionHandlerのフィールドに定義されている400を返す。