Tapestry5.1 以上组件特别的使用描述

component template.
page类如:Countdown.java里声明如下:
   @Component(parameters =
    { "start=5", "end=1", "value=countValue" })
    private Count _count;
则在页面里要有<t:comp type="Count" end="3" id="count"> Ho! </t:comp>这个id要有,不然在控制台就出现上述错误,有id时这个type属性
可以省掉(注意:没有id情况下在页面上还是能正常运行的.)

4,使用组件类:
@Component
private Count _count;
模版里我们这样调用<t:comp type="Count" id="count">test</t:comp>
为什么用count调用呢,我们不是声明的是_count吗,原来T5会把以"_"或者是"$"开头的都当作count看待.所以在这里,_count和$count和count三
者是一样的.

5,优先权:
组件类比模版优先级高,比如你使用一个组件,在模版里你配置了它的参数,在page类中,你使用@component注解时也配置了相应的参数,则在page类中配置的会覆盖掉模版中配置的

====绑定前缀=========================================================
绑定前缀有block,component,literal,message,prop,translate,validate;
在类中默认的绑定前缀是prop,在模版里默认的前缀是literal;

====render各个阶段===================================================
SetupRender--->BeginRender--->BeforeRenderTemplate--->Render Template--->BeforeRenderBody--->RenderBody--->AfterRenderBody
--->AfterRenderTemplate--->AfterRender--->cleanRender
1,我们可以在SetupRender阶段初始化传入的参数.
2,我们可以用相应的注解,也可以通过定义对应的方法来实现,如:
@setupRender
void init(){
value=_param;
}

void setupRender(){
value=_param;
}
是等效的;
Render methods可以定义为void类型的,也可以定义返回boolean型的.
3,递归render组件是不允许的;

====其它一些了解=====================================================
1,Inject注入
@Inject注入发生在field级别,通过添加相应的注解,描述注解对象的fileds在运行是会变成只读的.

你可能感兴趣的:(tapestry)