ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Japan JBoss User GroupコミュのIEで JBoss Seam を動かしたら「戻る」ができなくなった

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Seam 1.2.1 で作成したアプリケーションに IE6 または IE7 でアクセスすると「戻る」ボタンが使えなくなります。これは Seam の仕様でこのようになるのでしょうか?
「そんな現象は起こった事がない」
「それは Seam の仕様だ」
「Seam とは関係なく、XXX の影響だ」
など、なにかご存知の方がいらっしゃったら教えて下さい。

”「戻る」ボタンが使えなくなる” というのは具体的には下記のような感じです。
1. Aページを開く。
2. AページからBページへ移動する。
3. BページからCページへ移動する。
4. Cページで「戻る」ボタンを押し、Bページへ移動する。
この時点で本来ならば Aページへ戻るために「戻る」ボタンが押せるはずですが、
「戻る」ボタンが押せない状態(履歴がない状態)になり、Aページ へ戻れなくなります。
IE6、IE7 でこのような現象を確認していますが、それ以外の Firefox(Win版)、Firefox(Mac版)、Safari(Mac版) などではこの現象は起きません。

コメント(2)

いろいろ調べた結果、下記のような事がわかりました。

 ・IE6、IE7 では、「戻る」「進む」ボタンで移動できる範囲は、ボタンの横にある
  「最近表示したページ」メニューに表示されているものに限られる。
  履歴として残っているものとは別管理されている。

 ・「最近表示したページ」メニューに表示されているものは、
  「現在のセッションでアクセスしたページ」である。
http://windowshelp.microsoft.com/Windows/ja-JP/Help/f8510f73-6323-4700-9965-6e8f9cc67e491041.mspx

 ・「現在のセッションでアクセスしたページ」ではないと判断されたものは、
  「最近表示したページ」メニューから IE が勝手に外す。

上記のような IE の挙動の結果、今回のような現象が起きているようです。
つまり...
画面遷移していくうちに IE が勝手に "現在のセッション" かどうかを判断し、
"現在のセッションではない" と判断したものについては、「最近表示したページ」メニューから外す。
その結果、「戻る」ボタンで戻れる範囲が限定されてしまう。

IE が判断している 「現在のセッションでアクセスしたページ」 の定義が分からないので、
さらに調査中です。もし、ご存知の方がいらっしゃれば教えて下さい。
#このコミュで出す質問ではないですが...。(^_^;;

Seam の方も調査をして「これかな?」というところを思いついたので質問させてください。

現在私が作っているWebアプリはログインを必要とせず、画面間の移動の際各種情報は
URL の GETパラメータ で受け渡ししています。
# URL をブックマークして利用できるように。
ManagedBean (BackingBean) も @Stateless で動作させています。
こういう場合 セッション は存在していないと思っていたのですが、cookie を見ると
JSESSIONID が存在します。
そこで質問です。
セッションを使わないように(生成しないように)するにはどうすればいいですか?
思わぬところで原因がわかりました。

Seam の問題ではなく、JSF の問題でした。

web.xml で下記の部分の
<param-value>client</param-value>
を
<param-value>server</param-value>
へ変更したら戻るボタンが正常に使えるようになりました。

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Japan JBoss User Group 更新情報

Japan JBoss User Groupのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。