0

SessionリクエストごとにHibernateを開き、最後に閉じようとしています。

これはうまくいくように見えますが、私は今、自分のSessionオブジェクトをどのように入れるべきかを理解してThreadLocalおり、答えはそれを説明していません。

これを行うためのStruts2固有の方法はありますか?

4

1 に答える 1

1

Struts2サーブレットの前にあるHttpFilterを追加できます。フィルタ内:

public class SessionProviderFilter implements Filter {
    private static ThreadLocal<Session> sessionStore = new ThreadLocal<Session>();


    public void doFilter(...) {
        Session session = ... // get the session
        sessionStore.set(session);
        chain.doFilter(...);
        sessionStore.set(null);
   }

   public static Session getCurrentSession() {
        return sessionStore.get();
   }
}

これで、任意のコードから、現在の休止状態セッションを取得するために、SessionProviderFilter.getCurrentSession()を呼び出します。

于 2013-02-05T19:54:00.293 に答える