Как я могу повторно использовать фрагменты разметки TML между страницами? Я хочу реорганизовать повторяющийся код в компонент, похожий на файл тега или jsp include.Повторное использование фрагментов страниц в Tapestry 5
1
A
ответ
3
Чтобы создать компонент 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>
Вы можете использовать свой компонент в любой из ваших страниц, так же, как вы используете встроенные компоненты Гобелена:
<div t:type="Post" t:post="post" />
И, конечно, компоненты могут содержать свои собственные Actio nLinks, EventLinks, Forms и т. д. вместе с методами обработчика событий, поэтому вы не просто копируете контент между страницами ... вы воспроизводите поведение. –