继承设计到挂毯的构图设计5

时间:2014-02-06 18:08:42

标签: java tapestry

如何将继承设计中的下一个示例转换为tapestry 5中的合成设计?

ParentComponent.tml:

<container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" t:content="text/html; charset=utf-8">
    this is parent component<br/>

    <extension-point id="body_child"/>
</container>

ParentComponent.java:

public abstract class ParentComponent {

@Property
@Parameter(required=true)
private String param1;
@Property
@Parameter(required=true)
private String param2;
@Property
@Parameter(required=true)
private String param3;

}

C1.tml:

<t:extend xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" t:content="text/html; charset=utf-8">
<t:replace id="body_child">
    body of c1 ${param1}, ${param2}, ${param3}
</t:replace>

C1.java:

public class C1 extends ParentComponent {

}

test.tml:

<t:c1 param1="1" param2="2" param3="3"/>

提前致谢。

1 个答案:

答案 0 :(得分:1)

听起来你只是在寻找一个布局组件。你可以这样做:

为布局组件(父级)添加正文

<container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" t:content="text/html; charset=utf-8">
    this is parent component<br/>
    <t:body/>
</container>

由于您将从“子”组件控制内容,因此您无需传入变量。

public class ParentComponent {

}

从子组件中控制布局组件(父级)的内容。

<t:ParentComponent xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" t:content="text/html; charset=utf-8">
    body of c1 1, 2, 3
</t:ParentComponent>