Как я могу повторно использовать фрагменты разметки TML между страницами? Я хочу преобразовать повторяющийся код в компонент, аналогичный файлу тегов или включению jsp.
Повторное использование фрагментов страниц в Tapestry 5
Ответы (1)
Чтобы создать компонент Tapestry, вы создаете класс компонента и (обычно) файл .tml в пакете компонентов вашего приложения Tapestry.
Пример класса компонента, который отображает один пост в приложении для ведения блога:
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" />
person
Henning
schedule
20.08.2010
И, конечно же, компоненты могут содержать свои собственные ActionLinks, EventLinks, Forms и т. д. вместе с методами обработчиков событий, так что вы не просто копируете контент между страницами... вы копируете поведение.
- person Howard M. Lewis Ship; 02.09.2011