如何在页面之间重用 TML 标记块?我想将重复的代码重构到一个组件中,类似于标记文件或 jsp 包含。
问问题
529 次
1 回答
3
要创建 Tapestry 组件,您需要在 Tapestry 应用程序的组件包中创建一个组件类和(通常)一个 .tml 文件。
在博客应用程序中呈现单个帖子的示例组件类:
package my.tapestry.basepackage.components;
...
public class Post {
@Parameter(allowNull = false, required = true,
defaultPrefix = BindingConstants.PROP)
private BlogPost post;
public BlogPost getPost() {
return post;
}
}
对应的 Post.tml:
<t:container xmlns="http://www.w3.org/1999/xhtml"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
xmlns:p="tapestry:parameter">
<h2>${post.title}></h2>
<p>
<span t:type="ck/dateFormat" t:value="post.created"
t:pattern="d/M/yyyy" />
</p>
<div>
${post.text}
</div>
</t:container>
然后,您可以在任何页面中使用您的组件,就像使用 Tapestry 的内置组件一样:
<div t:type="Post" t:post="post" />
于 2010-08-20T15:12:12.583 回答