[ 
https://issues.apache.org/jira/browse/TAP5-2566?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Poulsen updated TAP5-2566:
--------------------------------
    Summary: RenderInformals mixin does not work with inherited informal 
parameters  (was: RenderInformals mixin does not work with interited informal 
parameters)

> RenderInformals mixin does not work with inherited informal parameters
> ----------------------------------------------------------------------
>
>                 Key: TAP5-2566
>                 URL: https://issues.apache.org/jira/browse/TAP5-2566
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.4.1
>            Reporter: Chris Poulsen
>
> It seems like the informal parameters are not propagated to the mixin, if 
> they are inherited. Explicitly rendering the informals instead works.
> The following example illustrates the issue:
> {code:title=Page.tml}
> ...
> <t1 inheritedInformal="inheritedInformal"/>
> ...
> {code}
> {code:title=T1.java}
> @SupportsInformalParameters
> public class T1
> {
>     @Component( inheritInformalParameters = true )
>     private T2 t2;
> }
> {code}
> {code:title=T1.tml}
> <div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd";>
> <t:content>
>     <span t1="t1">
>         <span t:id="t2"/>
>     </span>
> </t:content>
> </div>
> {code}
> {code:title=T2.java}
> public class T2
> {
>     @Mixin
>     private RenderInformals renderInformals;  // Does not work like expected
>     @BeginRender
>     void begin( MarkupWriter writer )
>     {
>         writer.element( "span", "t2", "t2" );
>         // resources.renderInformalParameters( writer ); // Works like 
> expected
>     }
>     @AfterRender
>     void after( MarkupWriter writer )
>     {
>         writer.end();
>     }
>     @Inject
>     private ComponentResources resources;
> }
> {code}
> The expected output should be:
> {code}
> <span t1="t1">
>   <span inheritedinformal="inheritedInformal" t2="t2"></span>
> </span>
> {code}
> But the produced output is:
> {code}
> <span t1="t1">
>   <span t2="t2"></span>
> </span>
> {code}
> The problem have arisen because we wrap the tapestry Radio component (which 
> uses the RenderInformals mixin) 
> A workaround could be to use the RenderNotification plugin and explicitly 
> render the informals in the parent component (T1 in the sample) - but that is 
> not really a nice "solution" (or expected behavior)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to