[Seasar-user:14059] Re: [Teeda] doOnceFinishでの二重サブミット防止の動きについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 5月 1日 (木) 21:00:21 JST
小林 (koichik) です.
Date: Thu, 1 May 2008 20:49:03 +0900
From: "西山はじめ" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:14058] Re: [Teeda] doOnceFinishでの二重サブミット防止の動きについて
> たった今見つけたのですが、doOnceを使用している画面と同じ画面に、ファイルダウンロードを行うサブミットが存在すると、
> 上手く動かないようです。
>
> exampleのdownload/csvdownload.htmlに、doOnceHogeメソッドと、inputを追加。
>
> 1.doDownloadでCSVファイルをダウンロード。
> 2.doOnceHogeボタンをクリック ← この段階で、DoubleSubmittedException が投げられます。
それが仕様通りですね.
doDownload もフォームをサブミットしているので,
その時点でトランザクショントークンはリセット
されます.
その後で doOnceHoge をクリックしても,すでに
トークンは無効であり,前にサブミットされたのは
doOnceHoge ではないため再表示することもできないので
例外になります.
doDownload と doOnceHoge の <form> を分けられるなら,
doDownload の <form> に
<input type="hidden" name="newwindow" value="true" />
を追加することで対応できるかもしれません.
# 試していませんが.
こういう話になってくると,Seam の Conversation
Scope っぽいのがあるといいのかもしれませんね.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内