[Seasar-user:12887] Re: ブラウザの戻るボタン使用について

Shinpei Ohtani [E-MAIL ADDRESS DELETED]
2008年 2月 15日 (金) 10:53:01 JST


大谷です

> >> 画面の遷移時ですが、A画面からボタン押下(doメソッド)によりB画面(別サブアプリケーション)に遷移し、B画面で、ブラウザの戻るボタンを使用。
>
> この状態ではクライアント側では、A画面を表示していますが、サーバー側ではB画面と認識していると思います。
>  その状態で、B画面に遷移するdoメソッドを押下すると、postbackと認識されて、doメソッドが呼ばれず、A画面のprerender()が呼び出されています。
>  postbackプロパティについてもtrueとなっています。
>  遷移先とメモリで保持している画面コードが一致しているから起きる現象かと勝手に思っています。
>  ただ、下記メールにあるバリデーションでエラーが発生していることはありません。またHTML にエラーメッセージの表示エリアは存在しています。

teeda-html-exampleに、/view/add/addInput2.htmlと/view/add2/addResult2.htmlがあります。
これで再現するか確認してもらえないでしょうか?
こちらの環境(IE6/FireFox2)では同様の操作を行ってもdoメソッドは呼べているようです。

08/02/15 に 加地 隼也<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 小林 (koichik)様
>  早速の回答有難う御座います。
>  早いレスポンスで感謝しています。
>
>  2についてですが、解答有難う御座いました。
>  何とか対応します。対象アプリはヘッダ部にメニューリンクが存在し、
>  どの画面からでも、他サブアプリケーションに遷移出来てしまうため、
>  全画面に対応を入れないといけないです。
>
>  ただ、1について詳細を追加させてください。
>
> >> 画面の遷移時ですが、A画面からボタン押下(doメソッド)によりB画面(別サブアプリケーション)に遷移し、B画面で、ブラウザの戻るボタンを使用。
>
> この状態ではクライアント側では、A画面を表示していますが、サーバー側ではB画面と認識していると思います。
>  その状態で、B画面に遷移するdoメソッドを押下すると、postbackと認識されて、doメソッドが呼ばれず、A画面のprerender()が呼び出されています。
>  postbackプロパティについてもtrueとなっています。
>  遷移先とメモリで保持している画面コードが一致しているから起きる現象かと勝手に思っています。
>  ただ、下記メールにあるバリデーションでエラーが発生していることはありません。またHTML にエラーメッセージの表示エリアは存在しています。
>
>  お手数ですが再度ご確認宜しくお願いします。
>
>
>
>  Koichi Kobayashi さんは書きました:
>
> >小林 (koichik) です.
>  >
>  >Date:    Thu, 14 Feb 2008 16:18:55 +0900
>  >From:    [E-MAIL ADDRESS DELETED] (加地 隼也)
>  >To:      [E-MAIL ADDRESS DELETED]
>  >Subject: [Seasar-user:12866] ブラウザの戻るボタン使用について
>  >
>  >> 1 doメソッド処理が開始しない
>  >>
>  >> 現象
>  >> 画面の遷移時ですが、A画面からボタン押下(doメソッド)によりB画面(別サブアプリケーション)に遷移し、B画面で、ブラウザの戻るボタンを使用。
>  >> A画面で再度、同ボタン押下で画面遷移をしようとした場合、doメソッドが呼ばれず、psotbackとして処理され、遷移が行なわれない。
>  >> また、postbackの為、初期でセットしたコンボボックスの値等が全て空白になります。
>  >
>  >postback という用語が何を指してるか
>  >分からないのですが,Teeda としては
>  >フォームをサブミットした場合は常に
>  >postback になります.
>  >
>  >戻ってサブミットも通常の postback として
>  >普通に処理されるはずです.
>  >do〜() メソッドが呼ばれないということは,
>  >バリデーションでエラーが発生していることが
>  >考えられます.
>  >
>  >もし HTML にエラーメッセージの表示エリアが
>  >なければ追加してみてください.
>  >
>  >
>  >> 2 サブアプリケーションの画面遷移後戻るボタン押下時
>  >>
>  >> 現象
>  >> 1とほぼ同じですが、変数をサブアプリケーションスコープで宣言し、上記と同じように、
>  >> 他サブアプリケーション(複数のサブアプリケーションから遷移可能な共通画面)に遷移後、
>  >> ブラウザの戻るボタンを使用した場合、戻った画面内の変数はクリアされています。
>  >> その為doメソッドを押下し、処理を行なった場合、nullpointのエラーとなります。
>  >> 正規のルート(画面内ボタン押下)の場合についてはセッションにデータを保持、復元を
>  >> 行なっています。
>  >>
>  >> 解決方法として、 セッションにデータを持たさないといけないでしょうか?
>  >> 戻るボタンの対応を入れる場合、サブアプリケーションスコープは使えないでしょうか?
>  >
>  >サブアプリケーションをまたがって「戻る」
>  >ボタンを有効にするには,現状ではアプリ側で
>  >セッションに状態を保存する必要があります.
>  ># セッションを直接扱うのではなく,
>  ># セッションスコープの Dto を使うのがいいと
>  ># 思いますが.
>  >
>  >
>  >--
>  >Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>
>  >
>  >_______________________________________________
>  >Seasar-user mailing list
>  >[E-MAIL ADDRESS DELETED]
>  >https://ml.seasar.org/mailman/listinfo/seasar-user
>  >
>
>
> ----
>
> 加地 隼也  [E-MAIL ADDRESS DELETED]
>
> _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


-- 
=============================
Shinpei Ohtani
[E-MAIL ADDRESS DELETED]
=============================


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