[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 メーリングリストの案内