0

我正在从 Tapestry 3 切换到 Tapestry 5,我对某些主题有点困惑。在 Tapestry 3 中,可以从同一页面中使用的其他组件访问页面组件/属性,例如:

<span jwcid="@RenderBlock" block="ognl:page.components.myMenu"/>  

myMenu已经在html页面中定义如下:

<span jwcid="myMenu@Block">  
  <span jwcid="@MyMenu"/>  
<span/>  

MyMenu组件在其自己的文件中定义。

Tapestry 5 怎么可能做同样的事情呢?

谢谢您的帮助。

4

1 回答 1

0

Tapestry 5 为此提供了特殊的绑定前缀:

block:foo 将参数绑定到

component:bar 将参数绑定到 t:id="bar" 的组件

除此之外,您可以使用 @Inject 来注入块或组件,并为这些注入公开属性。

您的示例可能类似于:

<t:delegate to="block:mymenu"/>

...

<t:block id="mymenu"> ... </t:block>

假设它们都在同一个模板中定义;否则,您必须安排参数或属性以将事物联系在一起。

于 2012-07-31T16:38:03.777 回答