You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Waimun Yeow <wa...@dev.java.net> on 2005/09/01 03:32:57 UTC

Re: Referencing page property from component specification

Thanks again for the how-to. I have decided to put the listener in the 
component.java instead, as you have suggested. As for the parameter 
approach, I did try but did not understand how to specify it in the 
html template as an ognl expression. I am still very blur about how 
this parameter passing works. And I want to avoid it to save some 
development time.

Thanks a ton.

--
waimun

On 8/31/05, robertz@scazdl.org <ro...@scazdl.org> wrote:
 > Best bet here is definitely going to be a parameter.
 > Or to go ahead and put the listener in the component... :) Can the
 > listener be generalized? If so, put it in the component, and you'll 
save
 > yourself time and effort later (and debugging time, and... :)
 > But that having been said...
 > <parameter name="listener" direction="auto"
 > type="org.apache.tapestry.IActionListener" required="yes"/>
 > (note, I'm a little fuzzy on the type... you could do a number of 
things:
 > don't define it, and just let the default of "object" work, or else 
look
 > at the type on direct link.)
 >
 > Then you'll want to do:
 >
 > <component id="someLink" type="DirectLink">
 >   <inherited-binding name="listener" parameter-name="listener"/>
 >   ...
 > </component>
 >
 > in the .jwc spec. You don't /have/ to make it inherited, but, in this
 > situation, it's probably best to make it inherited.
 >
 > Robert
 >
 > >
 >  Yes, it works. Thanks a ton.
 > >
 > > I have another DirectLink component in the spec. But I just can't 
seem
 > > to link it to the page containing the component. The exception 
report
 > > indicates that it can't find the listener in the component. I know 
it
 > > is not there because that's not what I want it to be; it should go 
and
 > > look for the listener created in the page that called the component.
 > >
 > > Would you show me how to do it again?
 > >
 > >
 > > waimun
 > >
 > > On 8/31/05, Robert Zeigler <ro...@scazdl.org> wrote:
 > >  > So, your component needs to render something within an insert, 
right?
 > >  > But the value to render isn't known by the component; rather, 
it's
 > > some
 > >  > property of the page. So, in your component, you'd do (tapestry
 > > 3.0.3):
 > >  >
 > >  > <parameter name="renderString" direction="in" required="yes"
 > >  > type="java.lang.String"/>
 > >  >
 > >  > In your component template you'd do:
 > >  > <span jwcid="@Insert" value="ognl:renderString"/>
 > >  >
 > >  > And in your page you'd do something like:
 > >  >
 > >  > <span jwcid="@MyCustomComponent" 
renderString="ognl:pageProperty"/>
 > >  >
 > >  > Where pageProperty is the property name to render on the page, 
and
 > >  > renderString can be whatever name makes sense for your component.
 > >  >
 > >  > Robert
 > >  >
 > >  > Waimun Yeow wrote:
 > >  > > I tried the page.<property> but did not work. Would you show 
me how
 > > you
 > >  > > would accomplish it via component parameter?
 > >  > >
 > >  > > Tks.
 > >  > >
 > >  > > waimun
 > >  > >
 > >  > > On 8/30/05, Robert Zeigler <ro...@scazdl.org> wrote:
 > >  > >> Hm. Well, this really sounds like a good candidate for a
 > >  > >> component-parameter. :)
 > >  > >> But... as long as you can guarantee that the property will 
exist...
 > >  > >> you can do something like:
 > >  > >>
 > >  > >> ognl:page.<property>
 > >  > >>
 > >  > >> getPage() returns the containing page.  Note that if you use
 > > complex
 > >  > >> block/render-block schemes (where the block is placed on one 
page
 > > but
 > >  > >> contained within a different page), this can lead to 
unexpected
 > > results
 > >  > >> (getPage() will return the page which contains the block, and 
NOT
 > > the
 > >  > >> page currently doing the rendering).  Again... /generally/
 > > speaking,
 > >  > >> you'd be better off making this a component parameter.
 > >  > >>
 > >  > >> Robert
 > >  > >>
 > >  > >> Waimun Yeow wrote:
 > >  > >> > Hi folks,
 > >  > >> >
 > >  > >> > I have a component specification .jwc with a component of 
type
 > > Insert.
 > >  > >> > The binding expression needs to reference to a page property
 > > value that
 > >  > >> > called it. For example, by random, if page A include this
 > > component,
 > >  > >> > then the Insert component will need to read page A property 
via
 > > ognl
 > >  > >> > thru binding expression attribute.
 > >  > >> >
 > >  > >> > Any hints? Thanks a lot.
 > >  > >> >
 > >  > >> > --
 > >  > >> > waimun
 > >  > >> >
 > >  > >> >
 > >  > >> >
 > > 
---------------------------------------------------------------------
 > >  > >> > To unsubscribe, e-mail:
 > > tapestry-user-unsubscribe@jakarta.apache.org
 > >  > >> > For additional commands, e-mail:
 > > tapestry-user-help@jakarta.apache.org
 > >  > >>
 > >  > >>
 > >  > >>
 > > 
---------------------------------------------------------------------
 > >  > >> To unsubscribe, e-mail:
 > > tapestry-user-unsubscribe@jakarta.apache.org
 > >  > >> For additional commands, e-mail:
 > > tapestry-user-help@jakarta.apache.org
 > >  > >>
 > >  > >>
 > >  > >
 > >  > >
 > >  > >
 > > 
---------------------------------------------------------------------
 > >  > > To unsubscribe, e-mail: 
tapestry-user-unsubscribe@jakarta.apache.org
 > >  > > For additional commands, e-mail:
 > > tapestry-user-help@jakarta.apache.org
 > >  >
 > >  >
 > >  > 
---------------------------------------------------------------------
 > >  > To unsubscribe, e-mail: 
tapestry-user-unsubscribe@jakarta.apache.org
 > >  > For additional commands, e-mail: 
tapestry-user-help@jakarta.apache.org
 > >  >
 > >  >
 > >
 > >
 > > 
---------------------------------------------------------------------
 > > To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
 > > For additional commands, e-mail: 
tapestry-user-help@jakarta.apache.org
 > >
 >
 >
 > ---------------------------------------------------------------------
 > To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
 > For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
 >
 >


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org