TestAction クラスでセッション オブジェクトを設定していますが、TestServlet でセッション オブジェクトを取得しようとすると、null が返されます。Seam フレームワークでアクション クラスからサーブレットにセッションを渡す方法を教えてください。
@Scope(ScopeType.EVENT)
@Name("testAction ")
public class TestAction {
public void setSessionObj(){
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
session.setAttribute("temp", "124563");
}
}
//サーブレットはここから始まります
public class TestServlet extends HttpServlet {
public void init(ServletConfig servletConfig) throws ServletException {
super.init(servletConfig);
servletContext = servletConfig.getServletContext();
}
protected String doExecute(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Session session = request.getSession(false);
String user1 = (String) session .getAttribute("temp");
}
}
以下は、セッションインスタンスのデバッグに関する観察です
アクションとサーブレットで取得している場合に備えて、セッションオブジェクトインスタンスを確認しましたが、どちらもセッションの異なるインスタンスです。たとえば、動作中のインスタンスは StandardSession[41CBDED6EBBBECEBA001A70555F51CA5] であり、サーブレットで取得するのは StandardSession[EACBDED6E34BECEB3401A70555F51CA5] です。異なるセッション インスタンスを取得する理由