[Seasar-user:14052] Re: [Teeda] doOnceFinishでの二重サブミット防止の動きについて

西山はじめ [E-MAIL ADDRESS DELETED]
2008年 5月 1日 (木) 19:12:54 JST


お世話になっております。西山です。

>  そんなわけで (どんなわけで?),現状の仕様で
>  お願いします.

了解いたしました。可能でしたら次バージョン(1.1系以降)で要望としてお願いしたいと思います。
DoubleSubmittedException が投げられた際、teedaErrorPage.dicon の設定でエラーページへ遷移することにします。

この際、元の画面に応じてメッセージを変えたい場合は エラーページにおいて、previousViewId を参照すればよろしいでしょうか?
(試している限りでは、previousViewId で判別できています)
もしくはどこかにAOPを仕掛けることで、処理できたりするでしょうか?

また、この件とは直接関係ないのですがStrutsのトークンみたいなものはTeedaにはありますでしょうか?

/subA(サブアプリケーションA)
  A
  B
   C
/subB(サブアプリケーションB)
  D

上のような画面があった際、A→B→Cと遷移後、レイアウトのメニューなどから、Dに遷移したとします。
その後、ブラウザの戻るボタンを押されるとB画面でPOST出来てしまうのですが、これを防ぎたいと思っております。
トークンを使用できれば実現できるのかなと思った次第です。

initializeでpreviousViewIdをチェックすれば出来なくはないですが、他に良い方法がないか模索中です。

以上、よろしくお願いいたします。

2008/05/01 18:00 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
>
>  Date:    Thu, 1 May 2008 16:12:57 +0900
>  From:    "西山はじめ" <[E-MAIL ADDRESS DELETED]>
>  To:      [E-MAIL ADDRESS DELETED]
>  Subject: [Seasar-user:14038] [Teeda] doOnceFinishでの二重サブミット防止の動きについて
>
>
>  > https://www.seasar.org/issues/browse/TEEDA-393
>  > これによりますと、doOnce〜の時の二重サブミット時の動作は、
>  > 他画面への遷移では、リダイレクト先
>  > 自画面への遷移では、DoubleSubmittedException
>  > と、ありますが、
>  >
>  > doOnceFinsh〜での動作は、どちらも
>  > DoubleSubmittedException が投げられるようになっているようです。
>  >
>  > doOnceFinish〜の場合でもdoOnce〜時と同じ動作にしていただけないでしょうか。
>
>  難しいですね.
>  doOnce〜() の場合,トランザクショントークンを
>  SubapplicationScope で管理します.
>  一方,do〜Finish() では SubapplicationScope を
>  クリアしてしまいます.
>  そのため,doOnce〜Finish() ではトランザクション
>  トークンが無効であることしか判別できません.
>
>  トランザクショントークンの管理を Subapplication
>  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 mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


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