Public Render Parameter handler class not being executed
mescaja Jan 12, 2012 6:20 PMHi
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