Oliver, the portal only calls the portlet's processAction() methodfor the
portlet that invoked the action. This in turn runs the full JSF lifecyle for
that portlet, including the INVOKE_APPLICATION phase, which runs the
navigation handler. All other portlets, however, proceed directly to
RENDER_RESPONSE by way of the portlet's doView() method. Therefore, even
with a custom Navigation Handler, you couldn't cause the passive portlet to
navigate to a new view (at least, not cleanly).

Off the top of my head, the only way I can think of to change the view in
the passive portlet (your portlet 2) is to use a single view that in turn
includes the real view (using a JSP include?) based on the value in
HTTPSession set by your active portlet. Actually, that won't work, either,
because <jsp:include> won't know how to evaluate a Faces value binding. It
should work with Facelets' <ui:include> component, however.

Of course, this approach has the disadvantage that you must keep track of
navigation states yourself in the passive portlet.

HTH,
/dmc

--
David Chandler
Development Coach
learnjsf.com

On 11/16/06, Pfau, Oliver <[EMAIL PROTECTED]> wrote:

 Hi,

I have 2 JSF portlets. Click in portlet 1 stores an object in the portlet
session. The portlet 2 evalutes on each server-roundtrip the object in the
portlet session. I want to realize a portlet session object sensitive
portlet 2. E. g. when I click a link for a customer object in portlet 1, the
GUI for a customer should be visible in portlet 2. When I click in portlet 1
on a bill object a bill GUI is shown and so on. I use a value binding in
portlet 2 as trigger. There I want to use instanceof operator and then
change the navigation. How can I set an outcome to show a jsp in portlet 2 ?
It is not an action only a value binding. Can this be done without a
subclass of navigation handler ?

Thanks,
Oliver

Reply via email to