我在主题中有以下方法:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)throws IOException, ServletException {
((HttpServletRequest) request).getSession().setAttribute("test", "abc");
}
我试图在portlet的doView方法中获取上面的会话对象。
HttpSession httpSession =PortalUtil.getHttpServletRequest(renderRequest).getSession();
System.out.println("httpSession obj"+(String)httpSession.getAttribute("test"));
我甚至尝试使用如下:
HttpServletRequest request1 =PortalUtil.getHttpServletRequest(renderRequest);
HttpServletRequest originalRequest = PortalUtil.getOriginalServletRequest(request1);
HttpSession httpsession = originalRequest.getSession();
System.out.println("httpSession ==> " + httpsession);//session object gets printed
System.out.println("test "+httpsession.getAttribute("test"));//null
当我尝试从doview方法获取时,我得到null值。任何人都可以建议如何从主题到门户
获取值答案 0 :(得分:0)
您只能使portletRequest
适应ServletRequest
界面。此外,您还需要PortalUtil.getOriginalHttpServletRequest()
。
Here's some more information关于两者之间的区别。
你应该用吗?否。
我无法想象主题需要写入会话的内容。并且甚至可能没有定义执行顺序。
你应该用什么?我不知道,因为我字体知道你在第一时间想要实现的目标