Dear Wiki user, You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for change notification.
The following page has been changed by DavorHrg: http://wiki.apache.org/tapestry/Tapestry5HowToNotMakeCustomComponent New page: I wanted to create a custom component and ended up doing few things the wrong way. Some will find these thing obvious, but I belive to some it will be usefull as well. == beforeRenderTemplate / beforeRenderBody == Documentation clearly states that if a component doesn't have body, !RenderBody phase is skipped, never the less I used that phase to create a custom component that outputs HTML by it self. What happened is that it worked when I used the component this way: {{{ <t:MyComp source="listData"> </t:MyComp> }}} but it did not work when the space between tags was removed, or written as single tag {{{ <t:MyComp source="listData"/> }}} If you don't intend to use the template supplied to your component's body (between tags), the proper place for your code is inside beforeRenderTemplate. ''HINT: you can use @!BeforeRenderTemplate, @!BeforeRenderBody annotations instead method names'' == non component classes/interfaces in myApp.pages and myApp.components packages == pages and components are instrumented by tapestry, they are also in a separate class loader, and you should avoid using their packages for any non component classes/interfaces. You are most likely to get '''!ClassCastException''' or '''!CoercionException'''. For me these problems were result of trying to make a component as fast as I can. I was eager to use the class reloading feature, and was also lazy to separate an interface to a top level class, so I created an interface for a !ListModel in my component and implemented it as inner class of the test page. I was perplexed by the exceptions that were thrown, and at first thought that the cause was in me using generics. At this time I can not in detail explain why these errors occur, but to recommend avoiding this situation. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
