如何在页面之间重新使用TML标记块?我想将重复代码重构为一个组件,类似于标记文件或jsp include。
答案 0 :(得分: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" />