[Seasar-user:10834] Re: [Teeda] doOnceでTokenのベリファイに失敗後にもう一度登録処理を行うと二重登録されてしまいます

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 10月 2日 (火) 17:00:41 JST


小林 (koichik) です.

Date:    Tue, 2 Oct 2007 14:26:13 +0900
From:    "はっしぃ" <[E-MAIL ADDRESS DELETED]>
To:       [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10827] [Teeda] doOnceでTokenのベリファイに失敗後にもう一度登録処理を行うと二重登録されてしまいます

> 入力画面→確認画面→完了画面 という遷移で、
> 確認画面の登録ボタンに doOnce を設定し、以下の操作を実行すると
> 結果的に二重登録が行われてしまいます。
> このような場合、二重登録を回避する方法をご存知ないでしょうか?
> また、ベリファイ失敗時にエラーページに遷移するような仕組みはないでしょうか?
> 
> ■手順
> 1.入力画面でデータを入力し「確認ボタン」を押す
> 2.確認画面で「登録ボタン」を押す
> 3.完了画面でブラウザの「戻るボタン」で確認画面へ戻る
> 4.確認画面で「登録ボタン」を押す
>   Tokenのベリファイに失敗して確認画面が表示される(正常動作)

本来 Teeda では,ここで確認画面ではなく,
2.の結果として表示された完了画面を出す仕様と
なっていたようです.
しかし,[TEEDA-381] の修正で動きが変わってしまい,
確認画面が出るようになってしまいました.
申し訳ありません.

元の仕様通り,完了画面を出すように修正したいと
思います.
それにより,

> 5.もう一度確認画面で「登録ボタン」を押すと
>   データが登録され完了画面へ遷移してしまう。

のような状況自体が無くなるはずです.


ただし,doOnce〜() で二重サブミットされた場合に,
1 回目にサブミットされた結果の画面が表示されるのは,
最後にサブミットが受け付けられた画面に限ることに
なりそうです.
# 日本語が苦しい...

上の例で言うと,入力画面の確認ボタンも
doOnce〜() になっていると仮定して,

1.入力画面でデータを入力し「確認ボタン」を押す
2.確認画面で「登録ボタン」を押す
3.完了画面でブラウザの「戻る」「戻る」で入力画面へ戻る
4.入力画面で「確認ボタン」を押す
  Tokenのベリファイに失敗してエラー画面が表示される

3 のところで 2 回戻った場合は,確認画面を出しても
しょうがないし,完了画面を出すのもおかしいので,
Teeda としてはエラーにします,ということです.

最後にサブミットが受け付けられたのは確認画面なので,
完了画面から 1 回戻って確認画面でもう一度サブミット
した場合はその時の結果の完了画面を表示しますが,
それ以外の画面まで戻って doOnce〜() をサブミット
した場合はエラーとします.

という仕様でコミッタ間で相談するのでしばしお待ちを.


--
<signature>
   <name>Koichi Kobayashi</name>
   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>




Seasar-user メーリングリストの案内