Wow this is a bit tangled. I remember this from the other thread now( [
BasePage -> Layout -> RealPage ] ). I don't mean to jerk you around, but
can you provide the exception report page? I think if we can see the
line causing this as well as the stack trace, we can nail down where T5
is expecting something it's not getting.

Jan Vissers wrote:
> The layout component that passes in the 'breadCrumb' model to the
> 'heading' component which should render the breadcrumbs...
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
> <html xmlns="http://www.w3.org/1999/xhtml";
> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
>     <head>
>         <meta http-equiv="Content-Type"
> content="text/html;charset=utf-8" />
>         <link rel="shortcut icon" href="favicon.ico" />
>         <title>${title}</title>
>     </head>
>     <body>
>         <div id="container">
>             <t:branding t:id="branding" />
>             <t:heading t:id="heading"
> t:breadCrumbs="${basePage.breadCrumbHolder.model}" />
>             <t:body />
>             <t:copyright t:id="copyright" />
>         </div>
>     </body>
> </html>
>
> On Fri, 2008-04-18 at 16:43 +0200, Chris Lewis wrote:
>   
>> 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>
>>>>  *    &lt;div id=&quot;heading&quot;&gt;
>>>>  *      &lt;ul id=&quot;breadcrumbs&quot;&gt;
>>>>  *           &lt;li
>>>> id=&quot;prefix&quot;&gt;[ &amp;aposyou-are-here&amp;apos ]&gt;/li&gt;
>>>>  *           { when loginPage }
>>>>  *               &lt;li&gt;&amp;aposlogin-page&amp;apos&lt;/li&gt;
>>>>  *           { when not loginPage }
>>>>  *               { for all crumbs }
>>>>  *                   { if crumb is last }
>>>>  *                       &lt;li&gt;[ crumb text ]&lt;/li&gt;
>>>>  *                   { if crumb is not last }
>>>>  *                       &lt;li&gt;&lt;a href=&quot;[ crumb
>>>> link ]&quot;&gt;[ crumb text ]&lt;/a&gt; &gt; &lt;/li&gt;
>>>>  *      &lt;/ul&gt;
>>>>  *    &lt;/div&gt;
>>>>  * </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]
>>>
>>>
>>>   
>>>       
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>   

-- 
http://thegodcode.net

Reply via email to