You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Scott O'Bryan (JIRA)" <de...@myfaces.apache.org> on 2013/11/14 18:49:32 UTC
[jira] [Updated] (TRINIDAD-2402) mechanism to setup a new component
binding context
[ https://issues.apache.org/jira/browse/TRINIDAD-2402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott O'Bryan updated TRINIDAD-2402:
------------------------------------
Resolution: Fixed
Fix Version/s: 2.1.0-core
Assignee: Jeanne Waldman
Status: Resolved (was: Patch Available)
> mechanism to setup a new component binding context
> --------------------------------------------------
>
> Key: TRINIDAD-2402
> URL: https://issues.apache.org/jira/browse/TRINIDAD-2402
> Project: MyFaces Trinidad
> Issue Type: Improvement
> Affects Versions: 2.0.1-core
> Reporter: Pavitra Subramaniam
> Assignee: Jeanne Waldman
> Fix For: 2.1.0-core
>
> Attachments: trinidad-2402.patch
>
>
> There are usecases where a custom tag that provides the ability to load dynamic layouts (or page fragments) based on app flow, requiring that new components be re-created when the tag is executed and a new layout different from the current one needs to be loaded.
> Merely deleting the component sub-trees in the tag handler does not entirely address the issue because when the tag is re-executed today, if a binding EL is set on the component, then the component instance held by the backing bean instance (typically a reuqest scoped bean) get reused instead of a new component being created.
> In order to force create the component instance, this new API will allow tag handlers to notify the framework by starting a new "component binding context". Between a pair of push and pop calls, component bindings will be cleared allowing for new component instances to be created and pushed to the backing bean.
> /**
> * Starts a new component binding context. Typically called from tag handlers when component
> * bindings in its subtree needs to be cleared, forcing the creation of new components.
> *
> * @param context FacesContext instance
> * @see RequestContext#popComponentBindingContext
> * @see RequestContext#isInComponentBindingContext
> */
> public static void pushComponentBindingContext(FacesContext context)
> {
> }
> /**
> * Pops out of the last pushed component binding context. Component binding instances will not be
> * cleared after popping out the outermost context.
> *
> * @param context FacesContext instance
> * @see RequestContext#pushComponentBindingContext
> * @see RequestContext#isInComponentBindingContext
> */
> public static void popComponentBindingContext(FacesContext context)
> {
> }
> /**
> * Returns true if we are currently within a component binding context.
> *
> * @see RequestContext#pushComponentBindingContext
> * @see RequestContext#popComponentBindingContext
> */
> public static boolean isInComponentBindingContext(FacesContext context)
> {
> }
--
This message was sent by Atlassian JIRA
(v6.1#6144)