And that is the part I want to see, from the template code which you still haven't shared ;-). What I'm referring to is your .tml file where you use this component.
Jan Vissers wrote: > 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] > > > -- http://thegodcode.net