users@javaserverfaces-spec-public.java.net

[jsr344-experts mirror] [jsr344-experts] [758-ViewActions] PROPOSAL: Add getViewActions() (was: f:viewAction requires at least one f:viewParam into f:metadata section)

From: Edward Burns <edward.burns_at_oracle.com>
Date: Fri, 14 Dec 2012 06:29:42 -0800

>>>>> On Thu, 13 Dec 2012 19:18:52 -0500, Leonardo Uribe <lu4242_at_gmail.com> said:

LU> Hi
LU> Implementing this feature in MyFaces, I notice that to make f:viewAction
LU> work as expected, you need to set at least one f:viewParam in to the
LU> page.

LU> This happens because JSF 2.2 section 2.2.1 says this:

LU> "... Call ViewMetadata.getViewParameters(). If the result is a non-empty
LU> Collection, do not call facesContext.renderResponse() ..."

LU> The idea is simple: only execute the full jsf lifecycle if required.

Leo, thanks for catching this. I suggest the following.

* Add to ViewMetadata

public static Collection<UIViewAction> getViewActions(UIViewRoot root)

* Modify 2.2.1 to also call ViewMetadata.getViewActions() and change the
condition for not calling facesContext.renderResponse() to be if either
collection is non-empty.

What do you think?

Ed

-- 
| edward.burns_at_oracle.com | office: +1 407 458 0017
| homepage:               | http://ridingthecrest.com/