2013-03-12 103 views
0

我有一個JSP文件的初始化塊獲取會話對象,我需要用它來恢復存儲在會話對象的用戶:如何從一個jsp頁面

Factory.jsp:

<%@page import="users.User"%> 
<%! 
public static class Factory{ 
    public Factory(){ 

    } 

    public static User getUser(){ 
     //session.getAttribute("loggedUser"); doesn't work 
     return null; 
    } 
} 

%> 

<% 
//some code 
%> 

有沒有辦法在getUser()方法中訪問會話對象?

+0

你使用任何框架? – 2013-03-12 10:25:46

+0

@JeevanPatil不,我沒有使用框架 – BackSlash 2013-03-12 10:26:44

+1

我認爲,這是不可能的,因爲會話對象僅在「service()」方法中可用,該方法僅在<% %>標記中使用。閱讀本文:http://stackoverflow.com/questions/7171521/how-to-use-request-object-within-a-function-in-jsp – sk2212 2013-03-12 10:40:36

回答

-1

如果您使用任何框架,則不必使用scriptlets。 請嘗試以下代碼:

<%! 
    Session session = request.getSession(); 
%> 

然後使用會話對象從中獲取變量。

<% 
    User user = session.getAttribute("loggedUser"); 
%> 
+1

爲什麼downvote?請給我這個理由?在投票結束後您應該發表評論。 – 2013-03-12 10:33:59

+0

我沒有放棄downvote,但我會解釋你爲什麼得到它:request.getSession()在<%!'塊中不起作用。 – BackSlash 2013-03-12 10:50:12

+0

我投降了。答案是錯誤的,部署它會表明這一點。 '<%! %>'表示類級聲明。當我投降時,我在移動中,評論比其值得的更麻煩。當有人低估沒有評論時,只需返回並檢查你的假設。如果社區或代碼不同意downvote,它通常會自行解決。 – 2013-03-12 11:14:41

相關問題