有人可以告诉我如何在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
答案 0 :(得分:3)
我就是这样做的:
sidebar.tml
<t:container>
The header is <t:delegate to="header"/>, and the content ist <t:delegate to="content"/>
</t:container>
Sidebar.java
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>
希望它有所帮助!