`

Tapestry3自定义组件

    博客分类:
  • MVC
阅读更多
tapestry早就步入annotation时代了,公司用的还停留在3.0时代,不过3.0确实比较经典,tapestry4,5正在一步步迷失自己。
用tapestry无非就为了四个字:基于组件。
tapestry3自定义组件有两种方式,一种就是原始的print方式后台一点点画组件然后渲染到前台,还有种就是画好html模版,后台纯粹传参数来渲染组件。
先是第一种,第一种继承AbstractComponent,override方法renderComponent:
public class TestInsert extends AbstractComponent {

	@Override
	protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
		
		writer.begin("span");
		writer.attribute("style", "color:red");
		writer.print("红色的span标签");
		writer.end("span");
		this.renderInformalParameters(writer, cycle);
	}

}

定义个Test.jwc
<component-specification class="aronlulu.test.TestInsert" 
	allow-body="yes" 
	allow-informal-parameters="yes">

  <description>
      redSpan
  </description>
</component-specification>

再在.application中定义位置:
<component-type  type="Test" specification-path="/Test.jwc"/>
然后页面中即可直接调用组件:
<span jwcid="test@Test"></span>
很灵活,一次麻烦,以后就处处可以重用。
第二种,基于模板的组件,第二种就是继承BaseComponent(基于AbstractComponent):
public class TestSpanByHtml extends BaseComponent{

	public String getValue(){
		return "红色的span标签";
	}

}

同样定义个TestByHtml.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="aronlulu.test.TestSpanByHtml" 
	allow-body="yes" 
	allow-informal-parameters="yes">

  
  <component id="test" type="Insert">
   <binding name="value">value</binding>    
  </component>
   
</component-specification>

再定义个html模板:
<html>   
<body jwcid="$content$">   
<hr>   
<span style="color:red"><span jwcid="test"></span></span>   
</body>   
</html>  

别忘了再定义上配置文件位置,然后页面就可以这样调用:
<span jwcid="test@TestByHtml"></span>。
以上就是两种定义方式,估计也是tapestry受欢迎的最主要原因吧,通过对页面组件化,然后用pool的概念管理组件,在较大规模系统扩展需求的时候确实会省很多的时间。
分享到:
评论

相关推荐

    tapestry5 自定义组件

    在 Tapestry 5 框架中,自定义组件是扩展其功能的关键方式,它允许开发者根据特定需求创建个性化和可重用的 UI 元素。Tapestry 5 是一个强大的 Java Web 应用程序开发框架,它强调组件化、模块化以及声明式编程模型...

    Tapestry简单入门.rar_java Tapestry_tapestry

    你可以直接使用这些组件,也可以根据需求自定义组件。自定义组件通常涉及以下几个方面: 1. **组件类**:定义组件的Java类,实现其逻辑。 2. **模板文件**:使用HTML和特殊的Tapestry标记来描述组件的外观。 3. **...

    tapestry4.02中封装ext的GridPanel组件

    3. **配置模板**:编写对应的HTML/TML模板文件,如`GridPanel.tml`,在这个模板中,可以通过Tapestry的标记语言来创建GridPanel所需的DOM结构,并通过JavaScript将Tapestry的数据绑定到GridPanel中。 4. **设置...

    tapestry3文档

    Tapestry3是一个强大而灵活的Web应用开发框架,它通过组件化编程模型简化了复杂Web应用的构建过程。掌握Tapestry的核心概念和最佳实践,可以帮助开发者快速、高效地开发出高质量的Web应用程序。无论是新手还是有经验...

    tapestry官方中文文档及中文字典

    3. **组件创建**:介绍Tapestry的组件模型,如何创建自定义组件,以及使用内置组件如表单、链接等。 4. **页面和组件生命周期**:解释页面和组件的生命周期方法,如构造器、初始化和销毁方法。 5. **事件处理和数据...

    tapestry 实例

    3. **状态管理**:Tapestry 自动处理组件状态的保存和恢复,确保在多个请求间保持一致性。 4. **渲染**:Tapestry 将组件渲染成HTML响应,返回给客户端。 **四、Tapestry 的优势** 1. **强类型**:Tapestry 是基于...

    tapestry table

    一个关于table在tapestry里应用的例子

    Tapestry 重要资料 教你认识tapestry

    3. **BaseComponent类**:扩展了AbstractComponent,添加了模板定位和读取功能,大多数自定义组件会继承它。 4. **IPage接口**:表示Tapestry页面,通常会继承自BasePage。 5. **IRequestCycle, IMarkupWriter, ...

    Tapestry

    开发者通常不会直接实现这些接口,而是继承如`AbstractComponent`或`BaseComponent`这样的基础类来创建自定义组件。`IRequestCycle`、`IMarkupWriter`和`IEngine`是三个重要的接口,它们分别处理请求周期管理、HTML...

    关于Tapestry的一些个人总结

    6. **自定义组件**:除了使用内置的组件之外,开发者还可以根据自己的需求创建自定义组件。这些组件可以继承自`BaseComponent`,并通过Java类进行实现。 #### 四、Tapestry与其他Web框架的对比 目前主流的Web框架...

    Maven + Tapestry5.3.8 + Spring4.0.5 + Oracle10g

    3)自带验证,自定义验证,验证码的生成 4)Tree组件的使用,Grid的各种使用(修改样式,排序,隔行换色等等),Loop组件的使用 5)集合Spring4.0.5实现的增删改查 等等 如果你是新接触Tapestry框架的话,会对你有...

    extjs_tapestry.rar_extjs tapestry_extjs_tapestry_tapestry

    2. **自定义组件**:"AjaxServlet.page" 似乎是一个 Tapestry 页面定义,可能包含了一个与 AJAXServlet 相关的组件。开发者可能已经创建了一个自定义的 Tapestry 组件,该组件利用 ExtJS 的组件和 API 来增强其功能...

    tapestry4.02中封装ext的TabPanel组件

    3. TabPanel.properties:这是Tapestry的资源文件,用于存储国际化字符串和其他配置信息。在TabPanel组件中,它可能包含TabPanel的标题和其他用户可见的文本,这些文本可以根据用户的语言环境自动调整。 4. ...

    Tapestry In Action

    - **自定义组件**:教授如何创建自定义表单组件,以满足特定业务需求。包括组件的设计原则、开发流程以及如何实现复杂数字输入等。 - **组件库集成**:介绍了如何集成现有的第三方组件库到Tapestry应用中,以扩展...

    Tapestry开发

    - **自定义组件:**根据需求自定义组件,增强应用的功能性和灵活性。 **3. 页面设计:** - **设计页面布局:**使用Tapestry提供的组件设计页面布局。 - **添加交互逻辑:**为组件添加事件监听器,实现页面上的交互...

    tapestry的文档

    在安全性方面,Tapestry提供了自定义错误页面和异常页面的能力,这使得开发者可以为用户提供更友好的错误处理体验。同时,Tapestry还支持与Spring框架的整合,这为那些已经在使用Spring的项目提供了一种选择,使得在...

    tapestry-project-4.1.5

    在实际应用中,Tapestry 提供了丰富的内置组件,如表格、表单、链接等,同时支持自定义组件,扩展性极强。它的模板语言结合了HTML 和Java 代码,使得界面设计与逻辑控制相分离,提高了开发效率。此外,Tapestry 还...

    tapestry4开发指南

    在深入探讨Tapestry 4的编程模型时,读者将学习如何使用Ivy或Maven来管理依赖,理解配置文件的结构,以及如何编写自定义组件。此外,书中还会涉及组件库的使用,包括内置的表单组件、导航组件等,这些组件可以帮助...

    Tapestry 5.1 实例教程(全部)

    2. **自定义组件**:通过扩展或创建新的组件,可以满足特定需求。理解组件的生命周期,包括初始化、渲染和更新过程。 3. **服务**:Tapestry的服务机制允许你定义和注入业务逻辑。学习如何创建、注册和使用服务,...

Global site tag (gtag.js) - Google Analytics