2012-09-13 26 views
0

我試圖設置可跨頁被操縱會議上,我能夠使用此代碼Liferay的設置會話和閱讀特定頁面上

HttpSession session1 = request.getSession(false); 
String foo = (String) session1.getAttribute("password"); 
session1.setAttribute("password","authenticated"); 
out.println(foo); 

設置會話此代碼是寫在定製JSP鉤(Journal_content/view.jsp

我也檢查會話是否保存在瀏覽器中,它在那裏。當我從一個頁面轉到另一個頁面時,我無法讀取會話,因此它要求我輸入密碼。

誰能告訴我如何在Liferay中做到這一點?

+0

你在哪寫過這段代碼? –

+0

@PrakashK我編輯了這篇文章,並且包括我正在使用什麼類型以及在哪裏激動。 –

回答

3

我認爲你可以使用PortletSession,而不是HttpSession這樣的:

PortletSession portletSession = renderRequest.getPortletSession(); 
portletSession.setAttribute("password", "authenticated", PortletSession.APPLICATION_SCOPE); 

...和獲取屬性:

String pwd = (String) portletSession.getAttribute("password", PortletSession.APPLICATION_SCOPE); 

由於Liferay的開箱即用的portlet其liferay-portlet.xml的定義<private-session-attributes>false</private-session-attributes>以上代碼與整個門戶共享session

一張小紙條使用<private-session-attributes>關於liferay-portlet.xml DTD:

private-session-attributes值設置爲true,如果Portlet不共享會話與門戶網站的屬性。默認值是true。 portal.properties中的屬性session.shared.attributes指定哪些會話屬性即使在private-session-attributes值爲true時也被共享。

讓我知道這是否有幫助。

0

我發佈了我的回答here來分享對象從鉤子到Portlet。

如果你想在portlet之間共享對象,那麼你必須在原始portlet的liferay-portlet.xml文件中設置false。