`
Lincoln
  • 浏览: 81344 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tapestry学习笔记(2)

阅读更多

3.  Tapestry 的面向组件开发方式

Tapestry面向组件的开发方式是传统开发方式的变革。什么是面向组件呢?这就像搭积木一样。Tapestry将一个应用程序分成很多个页面,而一个页面又是由若干组件组成的,我们不需要去关心任何Servlet细节,也不需要关心如何生成URLURL的结构,Tapestry会为我们自动生成合适的URL跳转叶面或者传递参数。

Tapestry框架中,页面有HTML模板,页面规范和页面类组成,而组件由HTML模板,组件规范和组件类组成。叶面的HTML模板和组件的HTML模板都是在原始的HTML静态页面中嵌入少量的jwcid属性标签构成,页面类和组件类都是抽象或非抽象的Java类,并最终继承于Tapestryorg..apache.tapestry.AbstractComponent类。因此,页面对于Tapestry来说,是一种特殊的组件。那么一个使用Tapestry框架的Web应用程序,实际上就是一堆Tapestry组件的集合。

页面的所有业务逻辑都放在页面类中,页面与页面的关系是Java对象之间的关系。叶面类的逻辑不会影响到组件类的逻辑,页面与组件通过组件参数联系在一起,组件参数是页面向组件或者组件向页面传递数据的媒介。组件的所有逻辑都放在组件类中。因此,组件的逻辑实现完全脱离页面的束缚。

  Tapestry组件是一个“黑盒子”,用于相应HTTP请求,并表现响应。在调用Tapestry组件的时候,我们根本就不需要去关心这个组件是如何实现的。我们面对的是组件的参数,只要向组件传递合适的数据,那么组件就会实现我们预期的功能。

页面类和组件类都是Java类,实现页面逻辑或者组件逻辑的过程不会影响到页面或组件的HTML模板。因此,Java程序员能够和美工人员实现完全独立的分工。

  使用Tapestry框架来开发应用程序,就如同我们组装一台电脑。我们只是关心CPU的性能如何,内存多大。却不会关心CPU是怎样制造的,内存芯片之间如何通信等。如果我们嫌这台电脑运算内存不够,加根内存条就可以了,并不会影响CPU硬盘等已有硬件的工作。同样,从小型的应用程序到各种大型团队开发的几百个页面的大型应用程序,对于Tapestry来说,只不过是页面和组件使用多少的差别。使用Tapestry来开发各种大小应用程序,都能够保持一个协调一致的结构。这种结构一致的特性使得不同开发者在类似的问题上会找到类似的解决办法。我们创建的Tapestry组件能够跨项目使用,那么随着我们开发的应用程序的增多,积累的Tapesty组件就会越多,开发应用程序的效率就会越快。

  Tapestry框架带来了真正的Java Web 应用程序OOP编程。

4.  面向元素VS面向组件——思维方式的变革

      在面向元素的开发方式中,我们的思维是线性的。我们无法将精力集中在应用程序的整体功能实现上。当一个超链接或者一个表单按钮没有达到我们预期目的的时候,我们首先考虑的不是应用程序业务逻辑是否正确实现,而是超链接或表单发送的URL的结构是否正确,并成功映射到指定的Servlet。特别当我们在页面中大量使用JavaScript脚本语言构造URL,或者修改页面中form表单的action属性的时候,分析和维护这样的页面是一场非常可怕的噩梦。

       在面向元素的应用程序中,我们关心URL传递参数所携带的数据,关心Servlet的任何细节,甚至在高并发状态下,我们还必须担心Servlet是否正确地接收URL中传递的数据。

       由于国内Struts框架使用相当广泛,而JSP又是我们学习Web应用程序开发的起步技术。因此,面向元素的开发方式是我们最习惯和最容易实现的开发方式。虽然面向元素开发方式实现起来最容易,但这并不意味着这种开发方式效率最高。由于我们不等不关心很多Servlet底层实现,于是我们不得不重复地编写这些底层代码,当一个页面中有多个action或者Servlet涉及高并发的时候,我们还得非常仔细地分析这些易让人混淆的底层代码。

       Tapestry框架的面向组件思维颠覆了我们的习惯性思维。在面向组件的开发方式中我们不再关注Servlet底层实现,也不再过问URL的结构。我们通过创建页面来构成应用程序,通过在页面中调用组件来实现页面功能。我们不关心页面如何通过URL跳转到另外一个页面,也不关心form表单如何通过URL将数据包装在请求中提交到服务器端。

   在面向组件的开发方式中,我们的思维是块状的,面向对象的思维方式。我们关心如何将用户在登录时输入的用户名和密码。我们关心在用户登录失败时向客户端返回什么样的错误提示信息,却不关心如何将这些错误信息打印到客户端浏览器。

   面向组件的开发方式使我们将注意力集中在页面逻辑实现上,这样就提高了工作效率。对于那些重复而又容易发生错误的底层Servlet代码,Tapestry框架能够很好地进行处理,使我们得以解脱。

分享到:
评论

相关推荐

    tapestry学习入门资料

    2. Tapestry 的社区提供了大量的学习资源和教程。 Tapestry 的应用案例: 1. Tapestry 已经在许多大型 web 应用程序中得到应用。 2. Tapestry 已经在许多知名公司中得到应用。 Tapestry 的发展前景: 1. ...

    Tapestry 学习文档

    在这个“Tapestry学习文档”中,我们可以深入理解这个框架的核心概念和技术。 1. **组件化编程**: Tapestry的核心是组件,它将UI元素(如按钮、表单、列表等)封装为独立的、可重用的单元。每个组件有自己的状态...

    Tapestry笔记

    【Tapestry笔记】 Tapestry是一个基于Java的Web应用框架,它采用了面向组件的开发方式,这使得它与其他如Structs、WebWork、SpringMVC等采用传统面向元素开发方式的框架有所不同。面向组件的开发模式旨在克服面向...

    tapestry4和5学习资料

    2. **tapestry.pdf**: 这可能是Tapestry的官方文档或者某个时期的综合教程,包含了Tapestry的核心概念、设计模式、最佳实践等内容。可能包括了模板语言、组件库、服务注入、AOP(面向切面编程)特性、国际化和本地...

    tapestry学习资料汇总

    本压缩包包含了丰富的Tapestry学习资料,总计约25M,涵盖了各种教程、教材和实践案例,对于想要深入理解和掌握Tapestry的开发者来说,是一份非常宝贵的资源。 1. **Tapestry基础** Tapestry基于组件模型,每个网页...

    tapestry官方中文文档

    2. **MVC模式**: 虽然Tapestry不是严格意义上的MVC(模型-视图-控制器)框架,但它实现了类似的概念。每个组件都可以看作是 MVC 的一个单元,有自己的模型、视图和控制逻辑,这样可以有效地分离业务逻辑和显示逻辑...

    Tapestry简单入门.rar_java Tapestry_tapestry

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型...通过学习"Tapestry简单入门.rar"中的文档,你将能够掌握这个框架的基础知识,为进一步深入学习和实践打下坚实基础。

    Tapestry5.1学习全集多本书整合

    是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。

    tapestry教程资料文档合集

    发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf 前3章 ---------------------------- tapestry开发流程.docx -------------------...

    tapestry源码 api等

    2. **Tapestry IoC (Inversion of Control)**: 是Tapestry中的服务容器,负责对象的创建、配置和管理。IoC使得组件之间的依赖关系可以通过配置来管理,而不是硬编码,提高了代码的可测试性和可扩展性。 3. **...

    史上最全面Tapestry学习教程

    本文档旨在提供一个全面且易于理解的 Tapestry 学习指南,帮助初学者快速上手并掌握 Tapestry 5.1 的核心功能。 #### 第一章:搭建 Tapestry 5.1 开发环境 ##### 1.1 安装 JDK - **原因**:Tapestry 5.1 使用了 ...

    tapestry3开发指南,带tapestry3所有jar包

    Tapestry 3的开发指南是学习和理解这一早期版本框架的关键资源,而提供的jar包则是实际开发中的必要依赖。 **一、Tapestry 3 的核心概念** 1. **组件**:Tapestry 3的核心是组件,它将HTML元素与Java代码结合,...

    Tapestry4开发指南

    2. **获取Tapestry4**:下载Tapestry4的最新版本,当前为beta-9版,从其变更日志来看,框架已趋于稳定,官方正致力于完善文档。 3. **配置项目**:在Eclipse中创建新的Web项目,并配置项目以适应Tapestry4的运行...

    tapestry学习资料

    《Tapestry学习资料》是一份综合性的资源集合,涵盖了Tapestry框架的三个主要版本:Tapestry 3、4和5。这份资料旨在帮助开发者深入理解和掌握Tapestry框架,提升Web应用开发的效率和质量。 Tapestry是由Apache软件...

    Tapestry5.0.16_API文档

    Tapestry5.0.16文档和大家一起学习

    tapestry 实例

    **Tapestry 实例详解** Tapestry 是一个开源的Java Web 应用程序框架,由Apache软件基金会维护。...通过深入学习和实践Tapestry,开发者可以创建出高效、可扩展的Web应用程序,享受到组件化开发带来的诸多益处。

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    tapestry5中文文档

    Apache Tapestry 5 是一个基于Java的Web应用开发框架,其设计目的是为了简化Web应用程序的构建,提供组件化的页面构建、输入验证...通过学习和实践Tapestry 5,开发者能够更好地理解和掌握现代Web应用开发的最佳实践。

    Tapestry通用WEB框架

    2. **模板语言**:Tapestry使用HTML模板定义页面布局。通过在HTML中插入特殊的属性和元素,开发者可以将Java代码与界面设计结合起来。这使得设计师和开发者能够各自专注于他们的专业领域。 3. **事件驱动**:...

Global site tag (gtag.js) - Google Analytics