2 Replies Latest reply: Jan 13, 2012 9:27 AM by Ken Finnigan RSS

Public Render Parameter handler class not being executed

Miguel Escaja Newbie

Hi

 

I have two portlet A (publishing) and B (Receiving). I have defined in both a Public Render Parameter called prpExample. Both portlets are deployed on to Tomcat 7.0.23 packaged with gatein 3.2.

 

The h:commandButton on Portlet A is set up to call the actionListener handler class that in turn sets the Public Render Parameter prpExample, see below

   

   public void publishParameter(ActionEvent ae){

       if(getResponse() instanceof ActionResponse){

           ActionResponse stateResponse = (ActionResponse) getResponse();

           stateResponse.setRenderParameter("prpExample", "MyParamValue");

       }

   }

  

 

The receiving portlet B has parameter value: #{user.prpExampleMember} in the view.xhtml

 

I got all up and running, the public render parameter value gets set to "MyParamValue" and is then passed from Portlet A to B and it´s displayed correctly on the view.xhtml

 

What I want to set up now is the Public Render Parameter Handler class called myPRPHandler. To do that I have created the handler class myPRPHandler in Portlet B

 

package com.escaja.portlets;

 

import javax.el.ELContext;

import javax.faces.context.FacesContext;

import javax.portlet.faces.BridgePublicRenderParameterHandler;

 

public class MyPRPHandler implements BridgePublicRenderParameterHandler{

   

    public void processUpdates(FacesContext context){

        ELContext elContext = context.getELContext();

        UserJSFManagedBean userJSFManagedBean = (UserJSFManagedBean)elContext.getELResolver().getValue(elContext, null, "UserJSFManagedBean");

       

        System.out.println("parameter handler");

       

        if(null != userJSFManagedBean){

            userJSFManagedBean.setPrpExampleMember("myPrpExampleValueChanged");

        } else {}

    }

}

 

An finally I added the following to the Portlet B descriptor (portlet.xml) file

 

  <init-param>
     <name>javax.portlet.faces.bridgePublicRenderParameterHandler</name>
     <value>com.escaja.portlets.myPRPHandler</value>
  </init-param>

 

I would expect the view.xhtml to show the parameter value "myPrpExampleValueChanged" instead of "myPrpExampleValue", Basically the parameter handler class myPRPHandler seem as though it does not get fired at all. I would also expect the command line to show "parameter handler" due to the code line System.out.println("parameter handler"); but it´s never logged.

 

Thanks