Nope, no difference. I also tried changing it to this with no effect:

<block jwcid="[EMAIL PROTECTED]">
        foo<br/>
        <rblock jwcid="@RenderBlock" block="component:testrenderer"
name="ognl:getBlock()" />
</block>

<block jwcid="[EMAIL PROTECTED]">
        <rblock jwcid="@RenderBlock"
block="ognl:components.testrenderer.getParameter('name')" />
</block>

I know that the informal parameters are not cached so I thought I'd try
it. but then the block parameter for the second @RenderBlock is still
cached so it has the same effect.

I thought that there also might be a way of temporarily disabling
parameter caching with a component or something. So I checked the
tapestry class enhancement code for parameters. It creates a property
that stores whether or not each parameter is cached each time the
parameter is accessed and there doesn't seem to be a way for me to
access those as they are private properties created in the enhanced
class.

On Thu, 2006-08-03 at 20:08 +0530, Karthik N wrote:
> very interesting problem.
> 
> just a wild thought after looking at your configuration - what if you change
> "ognl:getBlock()" to "ognl:block"  - does that make a difference ??
> 
> On 8/3/06, Dan Adams <[EMAIL PROTECTED]> wrote:
> >
> > Okay, here's a test case. I have this is in the template:
> >
> > <rblock jwcid="@RenderBlock" block="component:test" />
> >
> > <block jwcid="[EMAIL PROTECTED]">
> >         foo<br/>
> >         <rblock jwcid="@RenderBlock" block="ognl:getBlock()" />
> > </block>
> >
> > <block jwcid="[EMAIL PROTECTED]">bar</block>
> >
> > and this in the class:
> >
> >         public abstract int getIndex();
> >         public abstract void setIndex(int i);
> >
> >         public String[] getBlocks() {
> >                 return new String[] { "test", "block1" };
> >         }
> >
> >         public Object getBlock() {
> >                 int i = getIndex();
> >                 setIndex(i + 1);
> >                 return getComponent( getBlocks()[i] );
> >         }
> >
> > Now, this *should* under my understanding (I think there is something I
> > missing about how tapestry renders and evaluates whether parameters have
> > been cached) print out "foo bar". But instead it continuously prints out
> > "foo". If you set a breakpoint in getBlock() it is only called once.
> > What am I missing here?
> >
> > It seems that because the second renderblock is in the template that the
> > next time that block is rendered, tapestry considers the parameter
> > cached and doesn't re-evaluate it. And I don't know of a way to tell
> > tapestry not to cache it because obviously I can't change the @Block
> > component specification. Any ideas?
> >
> > On Thu, 2006-08-03 at 19:17 +0530, Karthik N wrote:
> > > i've faced a similar problem before try and set cache="false" for your
> > > parameters.
> > >
> > > On 8/3/06, Dan Adams <[EMAIL PROTECTED]> wrote:
> > > >
> > > > I actually already created an @Eval component that does just that. The
> > > > problem is that the expression that returns the block to render to
> > > > @RenderBlock is only evaluated the first time.
> > > >
> > > > On Wed, 2006-08-02 at 18:19 -0700, Epstein, Ezra wrote:
> > > > > This may not be the issue, but...
> > > > >
> > > > > You could make a "dyna-eval" component that (re-)evaluates an ognl
> > > > expression wherever/whenever you choose.
> > > > >
> > > > > OGNL is pretty easy to work with.
> > > > >
> > > > > Perhaps that could work?
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Ezra Epstein
> > > > >
> > > > > -----Original Message-----
> > > > > From: Dan Adams [mailto:[EMAIL PROTECTED]
> > > > > Sent: Wednesday, August 02, 2006 2:31 PM
> > > > > To: Tapestry users
> > > > > Subject: Re: recursive rendering
> > > > >
> > > > > Thanks Mike. Yeah, I've read that article at least twice now and
> > read
> > > > through the code. :) I'm having a problem that you may have run into;
> > much
> > > > like your code the block to render is returned via an ognl expression
> > and it
> > > > apprears the the expression is only being evaluated once and not each
> > time.
> > > > Did you ever have this problem?
> > > > >
> > > > > On Tue, 2006-08-01 at 16:04 -0700, Mike Henderson wrote:
> > > > > > Hi,
> > > > > >   It's a T3 example but it should show how it's done:
> > > > > >
> > > > > >
> > http://www.behindthesite.com/blog/C1931765677/E923478269/index.html
> > > > > >
> > > > > > Mike
> > > > > >
> > > > > >
> > > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > >
> > > > > --
> > > > > Dan Adams
> > > > > Senior Software Engineer
> > > > > Interactive Factory
> > > > > 617.235.5857
> > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > --
> > > > Dan Adams
> > > > Senior Software Engineer
> > > > Interactive Factory
> > > > 617.235.5857
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > --
> > Dan Adams
> > Senior Software Engineer
> > Interactive Factory
> > 617.235.5857
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
-- 
Dan Adams
Senior Software Engineer
Interactive Factory
617.235.5857


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to