[Seasar-user:12871] Re: ブラウザの戻るボタン使用について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 2月 14日 (木) 19:55:29 JST
小林 (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 メーリングリストの案内