2010-03-03 93 views
1

我寫一個使用會話範圍內的JSP useBean標籤的web應用程序如下圖所示我如何從一個servlet

<jsp:useBean id="userSession" class="project.session.UserSession" scope="session" /> 

我也寫了一個過濾器,做一些處理設置JSP UseBean的價值觀和需要在userSession bean上設置一些值。我如何獲得對象的句柄並在其上設置值?我試圖從會話中獲取對象,如下所示,但此方法不起作用。

UserSession userSession = (UserSession)request.getSession().getAttribute("userSession"); 

我使用Tomcat進行開發。

+0

您的過濾器在JSP執行之前運行。我假設你指的是在你設置它之後訪問bean(即另一個請求)。會話是否有效? – 2010-03-03 12:24:12

+0

是會話有效。 – 2010-03-04 06:31:58

回答

2

如果它爲空(它總是在第一個請求),那麼你只需要自己預先創建它。

UserSession userSession = (UserSession) request.getSession().getAttribute("userSession"); 
if (userSession == null) { 
    userSession = new UserSession(); 
    request.getSession().setAttribute("userSession", userSession); 
} 
userSession.doSomething(); 
+0

儘管對setAttribute進行了一些小改動。我能夠通過首先從會話中刪除屬性,然後添加新創建的會話屬性來獲得此工作。 – 2010-03-04 06:32:50

相關問題