Souravm,

Just a clairification, the request bean you have, is it not getting preserved between a single Action->Render or is it just not getting preserved in subsequent renders?

The first issue, in bridges before JSR-301 is actually a portal issue. The JSR specification does not say whether request attributes set in the action request have to be available in the render request. IMO, if they are not, request attributes are basically pointless. Pre-JSR 301 bridges were ignorant of this fact and just did what the portal did. The JSR-301 bridge DOES define this behavior and I believe he have special code to handle these issues. This code is NOT in the MyFaces 1.1 bridge.

As for the second issue, this is also something that is now handled by JSR-301, but the original attempt at JSF to define a bridge did NOT make this a requirement. In order to maintain compatibility with existing applications, the 301 bridge will preserve request attributes on subsequent "non-direct" render requests, but we also had to add a way to disable this functionality for beans that did not expect to be preserved.

For issue #1, I think it would probably be appropriate to add some code to fix this. What it would entail is storing the RequestMap in a global map with a key that you would set as a render parameter. You'll need to be careful to clean up anything that might "leak".

For issue #2, existing portlet applications in the 1.1 space DEPEND on this behavior. Changing it would break those applications. We chose to break it for JSR-301 because we though it more appropriate to preserve these parameters, but we added several mechanisms (one annotation based and one FacesConfig based) to allow these attributes to be easily excluded.

Hope that helps,
 Scott

souravm wrote:
Hi All,

I have a simple JSF application exposed as Portlet (in JBoss Portal Server 
2.6.4) using MyFacesGenericPortlet. The JSF application has a managed bean with 
Request scope.

The application works perfectly when it is run outside Portal environment.

But within Portal environment it does not work as the Manages Bean, though gets 
initiated and do all the processing properly during the initial lifecycle 
phases, during the render phase it further gets initiated and the previous 
instance gets lost.

The same works perfectly fine in Portal environment when the Managed Bean is 
declared in session scope.

Not sure whether this is the problem of MyFacesGenericPortlet or the Portal 
Server where it is running. Or is it by design ?

Any insight/viewpoint on this would be highly appreciated.

Regards,
Sourav

**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
for the use of the addressee(s). If you are not the intended recipient, please 
notify the sender by e-mail and delete the original message. Further, you are 
not to copy, disclose, or distribute this e-mail or its contents to any other 
person and any such actions are unlawful. This e-mail may contain viruses. 
Infosys has taken every reasonable precaution to minimize this risk, but is not 
liable for any damage you may sustain as a result of any virus in this e-mail. 
You should carry out your own virus checks before opening the e-mail or 
attachment. Infosys reserves the right to monitor and review the content of all 
messages sent to or from this e-mail address. Messages sent to or from this 
e-mail address may be stored on the Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***

Reply via email to