Here, you got the code of the processAction of the weather portlet.

public void processAction(ActionRequest request, ActionResponse response) 
throws PortletException
  |    {
  |       String newZip = request.getParameter("newzip");
  | 
  |       if(null != newZip)
  |       {
  |          PortletPreferences prefs = request.getPreferences();
  |          try
  |          {
  |             prefs.setValue("RssXml", RSS_URL_PREFIX + newZip);
  |             prefs.store();
  |          }
  |          catch(Exception e)
  |          {
  |             e.printStackTrace();
  |          }
  |       }
  |       response.setRenderParameter("newzip", RSS_URL_PREFIX + newZip);
  |       response.setPortletMode(PortletMode.VIEW);
  |    }




Here, you got the code of the processAction of my portlet.

public void processAction(ActionRequest request, ActionResponse response) 
throws PortletException, IOException, UnavailableException
  |   {
  |       PortletMode portletmode = request.getPortletMode();
  |       if(PortletMode.EDIT.equals(portletmode))
  |       {
  |               // récupération du nombre sélectionné dans la listbox
  |               // mise en session, pour l'édition
  |               // mise en variable locale pour l'affichage
  |                       
  |               String tempNamespace = request.getParameter("namespace");  
  |               if (tempNamespace.equals(namespace))
  |               {
  |                       nbFlux = request.getParameter("nbFlux");
  |                       
request.getPortletSession().setAttribute(namespace+"nbFlux",nbFlux);
  |                       
  |                       if (request.getParameter("details") == null) {
  |                               details = "false";
  |                               
request.getPortletSession().setAttribute(namespace+"details","false");
  |                       }
  |                       else {
  |                               details = "true";
  |                               
request.getPortletSession().setAttribute(namespace+"details","true");
  |                       }
  |                       response.setPortletMode(PortletMode.VIEW);
  |               }
  |       }
  |   }



The purpose of nbFlux is to fix the numbers of lines we take in the rss feeds. 
The problem is, when we got two instance of the portlet, setting this nbFlux in 
one portlet set the variables in the two.

That the reason of the use of namespace (to knew in which portlet we are). But, 
because of ActionResponse can give access to the value of the namespace we are 
obliged to use a global variable.

The problem is this variable is share between the two portlets. Its value is  
given by the last portlet which accessed it.

There is no solution.
(I can easily show two different xml feeds, but it's impossible to show the 
first one with 12 lines and the second with 9).

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4030633#4030633

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4030633

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to