通过会话将数据传递到另一个portlet之后,如果要清除目标portlet上的sessionAttribute
,但是它不起作用。
在目标Portlet中,我获取了session属性并清除了它,但是在刷新JSP页面之后。会话属性仍然存在。应该是null
。我如何摆脱这种情况,因为以下代码无法正常工作。
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@page import="javax.portlet.PortletSession" %>
<portlet:defineObjects />
This is the <b>NewPPIPC</b> portlet in View mode.
<%
PortletSession ps = renderRequest.getPortletSession();
String qString = (String)ps.getAttribute("sessionValue",PortletSession.APPLICATION_SCOPE);
ps.removeAttribute("sessionValue");
%>
<h1><%=qString %></h1>
最佳答案
重载方法使用PORTLET_SCOPE
搜索对象,但是您需要指定一个范围APPLICATION_SCOPE
。
ps.removeAttribute("sessionValue", PortletSession.APPLICATION_SCOPE);