JSR 286 provides a container runtime option javax.portlet.actionScopedRequestAttributes that when set to true allows portlets set complex objects as request attributes from the processAction method for subsequent rendering.
Based on the spec, action-scoped request attributes are kept in the session until are reset in the next action or session timeout. The reset can be done in different ways:
1) In portlet processAction method, call request.setAttribute(attributeName, null);, this call removes the attribute with the given name.
2) Build a portlet renderURL with a parameter that has name as javax.portlet.as and an empty string value, as shown in below. All action-scoped request attributes will be removed once the renderURL is invoked.
<portlet:renderURL var="refreshURL"> <portlet:param name="javax.portlet.as" value="" /> </portlet:renderURL>