有人可以告诉我如何在Tapestry中创建复合组件吗?
我知道如何在JSF中使用以及ui:define做到这一点。
但是如何用挂毯呢?
我想创建以下设置:sidebar.tml
:应定义一些可替换变量,此处为“ header”和“ content”
<t:container>
The header is ${header}, and the content ist ${content}.
</t:container>
layout.tml
:应为边栏定义始终与之对齐的正确位置//header
<t:sidebar />
//footer
customPage.tml
:应交付侧边栏的内容<t:sidebar>
<t:header>my header</t:header>
<t:content>some content here</t:content>
</t:sidebar>
我知道无法用这种方法来完成,但是希望您了解我正在尝试做些什么,并且可以对我有所帮助?
tyvm
最佳答案
这是我的方法:
sidebar.tml
<t:container>
The header is <t:delegate to="header"/>, and the content ist <t:delegate to="content"/>
</t:container>
侧边栏
public class Sidebar
{
@Property
@Parameter(required = true)
private Block header;
@Property
@Parameter(required = true)
private Block content;
layout.tml
//header
<t:sidebar header="sidebarHeader" content="sidebarContent"/>
//footer
Layout.java
public class Layout
{
@Property
@Parameter(required = true)
private Block sidebarHeader;
@Property
@Parameter(required = true)
private Block sidebarContent;
customPage.tml
<t:layout>
<p:sidebarHeader>my header</p:sidebarHeader>
<p:sidebarContent>some content here</p:sidebarContent>
rest of your content here
</t:layout>
希望能帮助到你!