[转载]Tapestry框架的扩展的研究

来源:百度文库 编辑:神马文学网 时间:2024/04/29 02:10:33
[转载]Tapestry框架的扩展的研究 介绍:Tapestry框架底层使用了Hivemind这个小巧的IOC容器,很多功能都有相应的配置文件。这些配置文件主要包括:service-point(服务点), implementation(服务实现),configuration-point(配置点)和contribution(配置实现)三个关键概念。其中,服务点定义了服务的接口与默认实现,implementation可以覆盖服务点的默认实现,服务点ID和配置点ID在一个模块中必须唯一。扩展Tapestry4.0不需要修改tapestry-4.0.jar文件。实例1:结合一个实例来说明可能更容易理解,比如tapestry- 4.0.jar/META-INF/tapestry.form.validator.xml,其中定义了一个配置点Validators, tapestry使用的校验器都在其中,如果想增加校验器,则可以在/WEB-INF/hivemodule.xml中增加: 在page中就可以引用增加的校验器 注意:以上两块代码中的粗体部分必须相同。实例2:扩展服务的实例,向tapestry中增加初始化任务。 tapestry启动时会自动执行MyApplicationInitializer的初始化任务。初始化类只需要实现接口ApplicationInitializer即可。 public final class MyApplicationInitializer implements ApplicationInitializer { public void initialize(HttpServlet servlet) { ServletContext context = servlet.getServletContext(); String contextpath = null; try { contextpath = context.getResource("/").getPath(); } catch (MalformedURLException e) { e.printStackTrace(); } if (contextpath == null) throw new ApplicationRuntimeException( "Error occured when getting context path."); contextpath = contextpath.substring(contextpath.indexOf("/") + 1); contextpath = contextpath.substring(contextpath.indexOf("/")); GlobalAssets.init(contextpath); }}其它:研究tapestry-4.0.jar/META-INF/下其它配置文件,可以对tapestry的众多功能进行扩展。标准组件的扩展:tapestry 框架所提供的组件称为标准组件,它是在Framework.library中进行定义的,如果想修改标准组件,则可以修改这个文件,设定 specification-path为合适的 classpath即可;更好的办法是新建一个库定义mylib.library,其中将标准组件的名字换成新的名字,如:引用时使用Form2即可,这样做可以保证框架的完整性,但是需要增加库ID,如:form@mylib:Form。注意:也可以将以下一行代码放入自己的application文件中,这种做法最佳!结束语:希望本篇短文能起到抛砖引玉的作用,引导大家对tapestry的诸多功能进行随心所欲的定制和扩展。到目前为止,对应Tapestry4.0的扩展与修改都不需要修改tapestry-4.0.jar文件,欢迎留言进行讨论。