将liferay主题java方法中的会话对象集提取到portlet doView()方法中
我在主题中有以下方法:将liferay主题java方法中的会话对象集提取到portlet doView()方法中,java,session,liferay,liferay-theme,Java,Session,Liferay,Liferay Theme,我在主题中有以下方法: public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)throws IOException, ServletException { ((HttpServletRequest) request).getSession().setAttribute("test", "abc"); } 我试图在portlet
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方法获取时,我得到了空值。任何人都可以建议如何从主题到门户获取值您只能获得适应
ServletRequest
界面的portletRequest
。此外,您还需要portal.getOriginalHttpServletRequest()
关于两者之间的区别
你应该用它吗?没有
我无法想象会议需要写什么主题。执行顺序甚至可能没有定义
你应该用什么来代替?我不知道,因为我知道您首先要实现的是什么您只能获得适应
ServletRequest
界面的portletRequest
。此外,您还需要portal.getOriginalHttpServletRequest()
关于两者之间的区别
你应该用它吗?没有
我无法想象会议需要写什么主题。执行顺序甚至可能没有定义
你应该用什么来代替?我不知道,因为我知道您首先要实现的目标是什么您能指导我使用HttpSession HttpSession=PortalTil.getOriginalHttpServletRequest()(renderRequest.getSession()吗;System.out.println(“httpsessionobj”+(字符串)httpSession.getAttribute(“test”);主题应该编写会话对象值session.setAttribute(“test”、“abc”);如上所示。执行命令?此方法在加载主题时执行,我正在尝试从portlet的theme到doview()方法获取会话对象值测试。我无法想象这会解决什么问题。主题不应该有太多的智能,而且感觉主题中的任何会话交互——特别是向会话写入内容——都是完全错误的。你能描述一个你想要解决的实际问题,而不是仅仅检查一个测试属性是否可以在别处读取吗?你能在我的例子中指导我应该使用HttpSession HttpSession=PortalTil.getOriginalHttpServletRequest()(renderRequest.getSession();System.out.println(“httpsessionobj”+(字符串)httpSession.getAttribute(“test”);主题应该编写会话对象值session.setAttribute(“test”、“abc”);如上所示。执行命令?此方法在加载主题时执行,我正在尝试从portlet的theme到doview()方法获取会话对象值测试。我无法想象这会解决什么问题。主题不应该有太多的智能,而且感觉主题中的任何会话交互——特别是向会话写入内容——都是完全错误的。您能描述一个您想要解决的实际问题,而不是仅仅检查测试属性是否可以在别处读取吗?