technically, you should only use public render parameters or events to share state between portlets.  Though using the PortletRequest might work in Pluto it is not standard and you wil lfind that this won't work on many portlet containers.  You can rely on the PortletSession however you must put the data in APPLICATION_SCOPE not PORTLET_SCOPE (the default) if you want all portlets in the same web application to see the attribute.
    -Mike-

[EMAIL PROTECTED] wrote:
Eric,
 
The attributes need to be set on the PortletRequest, not the PortletSession.
/Craig
 
 
 

 
-----"Eric Chow" <[EMAIL PROTECTED]> wrote: -----

To: [email protected]
From: "Eric Chow" <[EMAIL PROTECTED]>
Date: 07/04/2008 05:26AM
Subject: Pluto-2.0 portletSession cannot share parameters !!!

Hello,

I am testing the Pluto-2.0. I could not retrieve the attributes from
PortletSession.

For example,

I use portletSession.setAttribute("MYVAR", "some value") in PortletA,
and retrieve it in PortletB, but it always returned "null".


I tried to add the following in the portlet.xml in application level.



 <container-runtime-option>
     <name>javax.portlet.actionScopedRequestAttributes</name>
     <value>true</value>
     <value>numberOfCachedScopes</value>
     <value>10</value>
 </container-runtime-option>




Is there any bug ?

Best regards,
Eric



-----------
public class HelloWorldPortlet extends GenericPortlet {
    public static final String VIEW_PAGE = "/WEB-INF/portlets/demo/view.jsp";


    public void doView(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {        
        
        
// -------------------------------------------------------------------------------------------------------------------------
        // ------------------------------------------- retrieve the
attribute from the portlet session
              // -------------------------------------------always
return NULL ------------------------------------------------------------------------------

        System.out.println("......................" +
request.getPortletSession().getAttribute("MYVAR"));
        
        response.setContentType("text/html");
       PortletContext context = getPortletContext();
       PortletRequestDispatcher requestDispatcher =
context.getRequestDispatcher(VIEW_PAGE);
       requestDispatcher.include(request, response);

    }
}






------------------

public class LocalePortlet extends GenericPortlet {
    private static final String VIEW_PAGE =
"/WEB-INF/portlets/framework/locale/view.jsp";

    private Log log = LogFactory.getLog(this.getClass());
    
    public void doView(RenderRequest request, RenderResponse response)
            throws PortletException, IOException {
        response.setContentType("text/html");

        
        PortletContext context = getPortletContext();
        PortletRequestDispatcher requestDispatcher = context
                .getRequestDispatcher(VIEW_PAGE);
        requestDispatcher.include(request, response);
    }

    public void processAction(ActionRequest request, ActionResponse response)
            throws PortletException, IOException {

              //
-------------------------------------------------------------------------------------------------------------------------
        // ------------------------------------------- set attribute to
portlet session
              //
-------------------------------------------------------------------------------------------------------------------------
        request.getPortletSession().setAttribute("MYVAR", "This is my variable");
    }

}

Reply via email to