ユーザーが最初にアクセスしたときにJSPでセッションデータを取得する際に問題が発生しました。Struts2/Springアプリケーションの最初のアクセス時にJSPでセッション変数が空になる
私は、Strutsアクションでいくつかの「プロファイル」で満たされたセッションスコープBean「コンテキスト」を持っています。 URLは、Spring Securityの匿名ユーザーに許可されるように設定されています。
ページへの最初のアクセスでは、セッションは自分のアクションで正しく初期化されますが、strutsタグで使用すると空とみなされます。
私はJSPでJavaコードを使用すると、私はセッションが正しいことを確認できます。
<% System.out.println(((my.bean.SessionBean)session.getAttribute("context")).getProfiles()); %> => OK !!
session: <s:property value="%{#session}"/> => KO (empty)
session: ${session} => KO (empty)
結果は、Strutsタグが私のjspで「プロファイル」のリストを取得するために失敗するということです。
ページを更新すると正常に動作します。最初のアクセス時にセッションが初期化された場合にのみ失敗します。私はStrutsのデバッグモードでチェックしましたが、セッション変数は最初は空({})です。
最初のアクセス時に追加のStrutsアクションにリダイレクトすると、問題が解決します。しかし、この解決策は私にとっては理想的ではありません。
誰もが問題の考えを持っていますか? Strutsが空のセッションを取得するのはなぜですか?
<%@ page session="false"%>
セッション属性が「偽」である、あなたがアクセスすることはできません。
おかげ
残念ながら私はこの指示文を私のJSPに入れていません – Samuel