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在运行是会变成只读的.