代码之家  ›  专栏  ›  技术社区  ›  Robert Munteanu

重复使用Tapestry 5中的页面块

  •  1
  • Robert Munteanu  · 技术社区  · 14 年前

    如何在页面之间重新使用TML标记块?我想将重复的代码重构成一个组件,类似于标记文件或JSP include。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Henning    14 年前

    要创建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" />