struts2 でのセッション管理に問題があります。アプリケーション全体のデフォルトのインターセプターであるインターセプターのセッションで属性を設定しています。私のアクションでは、SessionAware インターフェイスを実装し、セッションをマップとして取得しています。しかし、インターセプターで設定した属性は、アクションで使用しているセッション マップには存在しません。baseAppStack のデフォルトのインターセプターを見逃していましたか、それとも何が欠けているのでしょうか?
struts.xml でのインターセプターの定義:
私のインターセプターコード:
HttpSession session = request.getSession (true); params = (SessionParams)session.getAttribute(Constants.KEY_SESSION_PARAMS);
if (params == null) {
//some code to populate params
session.setAttribute(Constants.KEY_SESSION_PARAMS, params); }
私のアクションコード:
Map session = getSession();
SessionParams params = (SessionParams) session.get(Constants.KEY_SESSION_PARAMS);