Tapestry学习7

自定义组件

与页面不同的时,组件的构成是html文件,jwc文件,还有java文件。Java文件必须继承BaseComponet接口,而Jwc文件的作用类似page文件,只是声明不同:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE component-specification
PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"
http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<component-specification class="com.tapestry.jwc.Test" allow-body="yes" allow-informal-parameters="yes">
</component-specification>
在这里,class="com.tapestry.jwc.Test"参数指定了组件对应的java文件,allow-body="yes"参数含义是该组件是否有body,而allow-informal-parameters="yes"参数指定该组件是否能够使用HTML参数。
要使用自定义组件,可以将jwc文件与其它page文件放在一起,然后在application文件中指定HTML文件到jwc文件的映射:
<component-type type="Test" specification-path="/WEB-INF/jwc/Test.jwc"/>

也可以将自定义组件放在其它地方或者打包为jar文件
这时,需要在web-inf目录下的application文件中定义组件包的路径:
<library id="my" specification-path="/com/tapestry/jwc/my.library"/>
然后再在my.library文件中定义组件HTML到jwc文件的映射:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE library-specification
PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"
http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<library-specification>
<description>Project specific components</description>
<component-type type="Test" specification-path="Test.jwc"/>
</library-specification>


.html文件
<input type="text" jwcid="@Any" id="printType" name="printType" value="ognl:printType" style="display:none"/>

.jwc文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE component-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN"
  "
http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
<component-specification class="com.jwc.AcctPrinter"
    allow-body="no"
    allow-informal-parameters="no">
    <parameter name="printType"
        direction="in"
        type="java.lang.String"
        required="yes"/>
</component-specification>

自定义组件是为了重用组件了,就像公共代码

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值