포스트에서 사용할 수 없습니다 :속성을 Liferay 포럼에 서블릿 세션
https://www.liferay.com/community/forums/-/message_boards/message/47412302가 나는 Portlet
session.attribute
하는 doView의 값을 (검색하는 JSR-286 포틀릿에서 간단한 응용 프로그램의 설정을 가지고) 방법 :
,536,913,632 :public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
throws PortletException, IOException
{
renderResponse.setContentType("text/html");
getFormBean(renderRequest.getPortletSession());
PortletURL renderUrl = renderResponse.createRenderURL();
renderUrl.setWindowState(WindowState.MAXIMIZED);
PortletRequestDispatcher dispatcher = getPortletContext().getRequestDispatcher(this.viewUrl);
dispatcher.include(renderRequest, renderResponse);
}
나는 TestPortlet.java 여기에 내 속성을 설정 10
private void getFormBean(PortletSession session)
{
String testVar = (String)session.getAttribute("testAttr", 1);
if (null == testVar) {
System.out.println("Setting Attribute inside Portlet");
session.setAttribute("testAttr", "TESTING SESSION", 1);
}
}
그리고 TestServlet.java 여기에 속성을 검색합니다 (같은 패키지) :
private void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String testVal = (String) request.getSession(true).getAttribute("testAttr");
System.out.println("Test Attribute from Servlet:"+testVal);
}
응용 프로그램 반환의 출력은
Setting Attribute in Portlet
Test Attribute from Servlet:null
출력해야한다 null로 :
Test Attribute from Servlet:TESTING SESSION
이 응용 프로그램은 작동하지 않습니다 내 로컬 설치에 있지만 거의 동일한 구성을 가진 원격 서버에 없습니다. 클래스를 검색하기 위해 tomcat/lib에 javax-servlet-api-3.1.0을 포함 시켰습니다. 누락 된 것이 무엇인지 발견하지 못했습니다. 나는 또한 어떤 Exceptions/ClassNotFound 오류도 보지 못했다.
세션을 방해 할 수있는 모든 종류의 서버 구성이있을 수 있습니까? (인증, 네트워크 설정, 보안)
지역 설정
- 톰캣 7.0.33
- JDK-1.7 (1.6 및 1.7 컴파일)
원격 설치
-
가
- Tomcat 7.0.33
- Apache 웹 서버
- JDK-1.6.0u35
- 더 jar 파일에서/lib 디렉토리 (JDBC 드라이버 등)
은 무엇입니까 PortletSession Scope로 테스트 할 때의 결과? String testVar = (String) session.getAttribute ("testAttr", 2); – erhun
자체 선언 내에서 세션 속성 값을 검색하는 테스트를 요청합니까? confused –
죄송합니다. 첫 번째 부분을 잘못 이해합니다. TestPortler.java에서 session으로 설정합니다.setAttribute ("testAttr", "세션 테스트", 1); session.setAttribute ("testAttr", "TESTING SESSION", 2)로 시도 했습니까? – erhun