In the snippet below if I change: public List<BreadcrumbBean> getBreadCrumbs()
and let it return a freshly created list. The loop construct works. However via the @Parameter (passing it it) doesn't. -J. On Fri, 2008-04-18 at 16:27 +0200, Jan Vissers wrote: > Here it is: > > import java.util.List; > > import org.apache.log4j.Logger; > import org.apache.tapestry.annotations.Parameter; > > import com.philips.lighting.guidecontrol.view.BreadcrumbBean; > > /** > * The heading component holds the following pieces of Heading > information. > * > * <pre> > * <div id="heading"> > * <ul id="breadcrumbs"> > * <li > id="prefix">[ &aposyou-are-here&apos ]>/li> > * { when loginPage } > * <li>&aposlogin-page&apos</li> > * { when not loginPage } > * { for all crumbs } > * { if crumb is last } > * <li>[ crumb text ]</li> > * { if crumb is not last } > * <li><a href="[ crumb > link ]">[ crumb text ]</a> > </li> > * </ul> > * </div> > * </pre> > * > * @author Cumquat Information Technology > * > */ > public class Heading { > private static final Logger logger = > Logger.getLogger(Heading.class); > > @Parameter > private boolean loginPage = false; > > @Parameter > private List<BreadcrumbBean> breadCrumbs; > > private int index; > > private BreadcrumbBean crumb; > > public boolean isLoginPage() { > return loginPage; > } > > public List<BreadcrumbBean> getBreadCrumbs() { > return breadCrumbs; > } > > public void setBreadCrumbs(List<BreadcrumbBean> breadCrumbs) { > logger.debug("Setting breadcrumbs: "+breadCrumbs); > this.breadCrumbs = breadCrumbs; > } > > public int getIndex() { > return index; > } > > public void setIndex(int index) { > this.index = index; > } > > public BreadcrumbBean getCrumb() { > return crumb; > } > > public void setCrumb(BreadcrumbBean crumb) { > this.crumb = crumb; > } > > public boolean isLastCrumb() { > return (index == breadCrumbs.size() - 1); > } > > } > > On Fri, 2008-04-18 at 16:22 +0200, Chris Lewis wrote: > > We still haven't seen your template code, where you declare this > > component and pass it the model. I can't be sure but perhaps it will > > shed some light... > > > > Jan Vissers wrote: > > > The problem is somehow related to the way my page and component are > > > hooked up/working. > > > > > > For testing purposes I now create the Breadcrumb list in the component > > > itself, simply returning a created list on the fly whenever > > > getBreadCrumbs() is called. This works as expected!!! > > > > > > Strange thing is that via passing the 'model' to the component via a > > > page binding the same thing doesn't work. This must be a bug?! > > > > > > -J. > > > > > > On Fri, 2008-04-18 at 15:59 +0200, Chris Lewis wrote: > > > > > >> That looks good to me. I don't have an example I can look at with a > > >> loop, but I do have one with a t:grid in which I reference a bean > > >> property of a custom class. It's possible that the two are vastly > > >> different, but I wouldn't think that. > > >> > > >> Jan Vissers wrote: > > >> > > >>> On the component I have: > > >>> > > >>> @Parameter > > >>> private List<BreadcrumbBean> breadCrumbs; > > >>> > > >>> This is passed in via the containg (base)page. > > >>> And in the same component class I have: > > >>> > > >>> private BreadcrumbBean crumb; > > >>> > > >>> public BreadcrumbBean getCrumb() { > > >>> return crumb; > > >>> } > > >>> > > >>> public void setCrumb(BreadcrumbBean crumb) { > > >>> this.crumb = crumb; > > >>> } > > >>> > > >>> This should be right, right? > > >>> > > >>> -J. > > >>> > > >>> On Fri, 2008-04-18 at 14:00 +0100, nicholas Krul wrote: > > >>> > > >>> > > >>>> ? is your crumb property of type BreadCrumbBean, or is it type String? > > >>>> should be same as breadCrumbs<?TYPE> > > >>>> > > >>>> On Fri, Apr 18, 2008 at 1:56 PM, Chris Lewis <[EMAIL PROTECTED]> > > >>>> wrote: > > >>>> > > >>>> > > >>>> > > >>>>> I can't speak about your t:if bit because I don't know what > > >>>>> "LastCrumb" > > >>>>> would be, but assuming that your page class has getters/setters (or > > >>>>> the > > >>>>> property is annotated with @Property) for the "crumb" property, a > > >>>>> getter > > >>>>> for your "breadCrumbs," and your crumb bean defines a "getName" > > >>>>> method, > > >>>>> you *should* be good. > > >>>>> > > >>>>> It would be helpful if you can include the exception, specifically the > > >>>>> line it references, etc. > > >>>>> > > >>>>> chris > > >>>>> > > >>>>> PS the list is good, the IRC channel (irc.freenode.net #tapestry) is > > >>>>> better ;-) > > >>>>> > > >>>>> Jan Vissers wrote: > > >>>>> > > >>>>> > > >>>>>> Yep, sure, I may I add - This mailing list is great and Tapestry > > >>>>>> rocks! > > >>>>>> > > >>>>>> <t:loop source="breadCrumbs" value="crumb" index="index"> > > >>>>>> <t:if test="LastCrumb"> > > >>>>>> ${crumb.name} > > >>>>>> <t:parameter name="else"> > > >>>>>> <a href="#" > > >>>>>> t:type="pageLink" ....>${crumb.name}</a> > > >>>>>> > > > >>>>>> </t:parameter> > > >>>>>> </t:if> > > >>>>>> </t:loop> > > >>>>>> > > >>>>>> -J. > > >>>>>> > > >>>>>> On Fri, 2008-04-18 at 14:34 +0200, Chris Lewis wrote: > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>>> Can you share some code? At least the relevant part from template > > >>>>>>> would > > >>>>>>> be helpful. > > >>>>>>> > > >>>>>>> chris > > >>>>>>> > > >>>>>>> Jan Vissers wrote: > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>>> Hi, > > >>>>>>>> > > >>>>>>>> Just to make sure I'm not missing something. > > >>>>>>>> > > >>>>>>>> In T4 when I wrote a @For construct I could use value="..." as > > >>>>>>>> long as > > >>>>>>>> > > >>>>>>>> > > >>>>> I > > >>>>> > > >>>>> > > >>>>>>>> provided a setter|getter pair for the class involved - in this case > > >>>>>>>> BreadcrumbBean. I want to iterate over a list of beans and use each > > >>>>>>>> instance individually. Now T5 throws up on me with this nice > > >>>>>>>> coercion > > >>>>>>>> message. Does this mean I need to contribute my own coercion - or > > >>>>>>>> is > > >>>>>>>> there a more simple way? In my case BreadcrumbBean is a simple > > >>>>>>>> class > > >>>>>>>> holding three String members. > > >>>>>>>> > > >>>>>>>> Thanks (again :-)) > > >>>>>>>> -J. > > >>>>>>>> > > >>>>>>>> > > >>>>>>>> --------------------------------------------------------------------- > > >>>>>>>> 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] > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > > >>>>> -- > > >>>>> http://thegodcode.net > > >>>>> > > >>>>> > > >>>>> > > >>>>> > > >>> --------------------------------------------------------------------- > > >>> 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] > > > > > > > > > > > > > > --------------------------------------------------------------------- > 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]