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



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){


        } else {}




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




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.