2012-09-13 3 views
0

, 내가이 코드는 사용자 정의 JSP로 작성이 코드하는 Liferay 세션을 설정하고 특정 페이지에 읽을

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

를 사용하여 세션을 설정 할 수 있었다 나는 페이지에 걸쳐 조작 할 수있는 세션을 설정하기 위해 노력하고있어 hook (Journal_content/view.jsp)

또한 세션이 브라우저에 저장되어 있는지 확인했습니다. 한 페이지에서 다른 페이지로 갈 때 세션을 읽을 수 없으므로 암호 코드를 넣으라는 메시지가 다시 나타납니다.

누구나 Liferay에서 어떻게 만드는지 알려 줄 수 있습니까?

+0

어디에서이 코드를 작성 했습니까? –

+0

@PrakashK 나는 포스트를 편집했고, 내가 어떤 타입을 사용하고 어디에서 excatly했는지 포함했다. –

답변

3

나는이 같은 PortletSession 대신 HttpSession를 사용할 수 있다고 생각 :

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

... 그리고 속성을 페치 :

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

을 Liferay의 OOTB 포틀릿가 liferay-portlet.xml의에서 <private-session-attributes>false</private-session-attributes>을 정의하기 때문에

위의 코드는 전체 포털과 session을 공유합니다.

<private-session-attributes> 사용에 관한 liferay-portlet.xml DTD에서 작은 참고 : 세션을 공유하지 않습니다 포틀릿은 포털 속성 경우 true로 private-session-attributes 값을 설정

. 기본값은 true입니다. portal.properties의 session.shared.attributes 등록 정보는 private-session-attributes 값이 true 인 경우에도 공유되는 세션 속성을 지정합니다.

이 정보가 도움이되는지 알려주세요.

0

내 답변 here을 게시하여 Hooks에서 Portlet으로 개체를 공유했습니다.

포틀릿간에 객체를 공유하려면 원래 포틀릿의 liferay-portlet.xml 파일에서 false를 설정해야합니다.

관련 문제