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***