> Stefan Kohler pisze:
>> Maybe some can explain this to me - it might be a general JSF
>> misunderstanding I am having.
>
> Could be the latter.
>

I thought so, too! Thanks for the reply! This problem kept me thinking
about the same things you mentioned, do I really need a Faces Reqeust or
should I do a Non-Faces Request instead. Also, I kept reading the docs and
thought - OK, the panelNavigation is in a form, by clicking a link I
submit this form, but only this form - right? Some further debug should
that the 'old' page was accessed again in the APPLY-REQUEST-VALUES phase,
which had me thinking it is being submitted as a form - but I didn't have
a form-Tag around the content of the page.

Basically that's what I did to get rid of the problem, I added a form-Tag
to surround the content of the page and after that it wasn't submitted /
accessed / processed when clicking one of the links in the navigation.

Does this sound like a reasonable solution? It works for me now, but could
an extra (not needed) form have some other impacts? I don't think it does,
but maybe someone has experienced the opposite?

> The whole idea of JSF is that you build a tree of components and they
> handle things like navigation, actions etc. That's much different from
> what action oriented frameworks do, and has some unexpected implications.
>
> Pressing the commandNavigation must be processed by the
> commandNavigation component itself, not some other entity. And the only
> way of reaching your commandNavigation is for JSF to rebuild the whole
> component tree (actions taken may depend on state of some other
> controls). This is exactly why your original page gets reloaded. Actions
> and things like navigation, I believe, are processed in one of the last
> phases (Invoke Application), just before rendering the page, but after
> building the component tree.
>
> If you don't need all the above, you shouldn't be using
> commandNavigation, an ordinary link would do. If you still want to use
> it, try immediate='true'. This should cause your action to be processed
> during 'apply request values' phase. Depending on how your backing beans
> work, this could solve your problem.
>

I tried immediate='true', too, but that didn't help in my case!

> Hope this helps,
> Filip Dreger
>

In fact your explenations did help me understand JSF a little better,
thank you very much!


Reply via email to