On 11/7/05, Gary VanMatre <[EMAIL PROTECTED]> wrote:
>
> > On 11/7/05, Gary VanMatre wrote:
> > >
> > > >So, are you thinking that "#{shale:managed-bean-name.save}" would be
> > > >something that would evalutated entirely within a custom shale jsf
> > > >VariableResolver or would the symbol replacement be done in the clay
> > > chain (
> > > >i.e. replaceMnemonic) and then passed to the standard
> VariableResolvers?
> > >
> > > A custom VariableResolver is what I was thinking. The variable
> resolver
> > > would use the symbol table cached in thread scope to resolve the
> symbols.
> > >
> > > I'm hoping that Craig will be able to help out on this one:-)
> >
> >
> > Ryan's idea is definitely a good one. And it raises a quick question ...
> is
> > the ClayContext already stored as a request attribute under name
> > "clayContext"? If so, we might not need much help at all.
> >
>
> Nope, it's not but wouldn't hard to push it there. Something I'm not
> certain about is when a variable resolver would be invoked. Is it when the
> binding object is created or when the binding is invoked? If it's when the
> binding is created, I think that request scope would work out. Otherwise, I
> believe there will be a scoping issue.


It's invoked when you evaluate the expression, not when the binding is
created, so things should work fine.

When the AssignChildrenCommand is invoked, it builds the current symbol
> table. This is "scoped" for the creation of the child. The component symbol
> metadata (ComponentBean.getSymbols()) overrides anything in an outer
> scope. If the child is a nested clay component, the managed bean name will
> also override the current value in the symbol table. Since the symbol
> replacement happens before the binding expression is established, the
> resulting value is kept by the component.


Sounds good.

> Craig
> >
>
> Gary
>

Craig

Reply via email to