Tapestry笔录

原创 2007年10月10日 17:40:00

1.     Tapestry作为开源框架,属于Servlet的扩展,即建立在Servlet之上的一个框架,并且工作在Servlet Containers或者application server(包含servlet containers)之上,当然理所当然的构建于Servlet Containers或者application serverTapestry application之间。

2.     Tapestry对于系统的构建需要搭配合理的对应层框架以组织合理于需求的软件应用,其并不关心持久层的运作。当然就其自身的组件模式,能够更合理的将程序与页面工作区分开,以达项目工作的同步进行与松藕荷的关联。

3.       Tapestry以面向组件思想为中心,将Tapestry application的组成划分成:

页面(page):应用程序由一堆命名唯一的页面组成,每个页面有一个模板和若干组件;

模板(Template):一个用于页面(或一个组件)的HTML模板。Tapestry中,一个模板包括基本的HTML markup,以及一些用于标记组件的特殊属性的标签。

组件(Component):用于Tapestry页面的可重复使用的对象。当一个页面表现时,或者页面中的一个链接被触发时,组件产生相应的HTML代码。多个组件也可以用来构成一个新的组件。

参数(Parameter):组件拥有一些参数,用于组件属性与页面属性之间的连接。组件通常读取自己的参数,但是一些组件(与HTML forms相关)能够更新自己的参数,并且更新与参数绑定的页面属性。

然而Tapestry applicationGUITemplate与规范所组成,这样能够更容易的展现Web界面,并得到与整个系统的易维护、易扩展的能力.

4.     作为流行的MVC开发模式,Tapestry component成为了理所当然的Controller,并承担着组织The ModelThe View的工作.如同之前说过的page包含着一个或者更多的component,而其对应着一个Template,相互之间的连接由框架的规范进行配置,对于Template中属性所指定的组件,对应的page里有其Parameter的实现,并且所连接的class将根据client所传递的form数据及业务逻辑进行处理,以完成application的工作.

5.     Component作为Tapestry中关键的核心,其对TemplateClass之间的衔接起着致关重要的作用:

HTML模版

现在来细说一下关于HTML模版。当然针对HTMLFORM表单依然是以组件的形式进行连接即<form jwcid=”name”></form>

对于其他的input类型也是设置相应的jwcid=”name”这些也是需要说的隐式调用。

 

页面规范

其实在之前的笔记中也做了一些格式性的说明,固定的XML文件头声明,DOCTYPE声明等都不用多说,只是一些元素的自定义与HTML模版的JWCID进行关联等方式需要针对性修改。

<component id=”name” type=”组件类型(HTML类型)”>

<binding name=”” value=””>    //这个valuename需要在tapestry文档里进行查阅

</component>

 

页面类

这是继承于BaseePage类的。Tapestry有个特殊,也就是不需要为页面属性指定类型。其实在我理解,页面类就好比是页面本身的一个业务处理结构与业务处理工作的中心环境,提供对用户数据的分析处理,让程序能够按照业务流程进行工作。

 

6. Tapestry application的配置: 应用程序项目配置

web.xml配置文件

<?xml version=”1.0” encoding=”UTF-8”?>

<!DOCTYPE web-app PUBLIC ”-//SUN Microsystems, Inc.//DTD Web Application 2.3//EN” “http://java.sun.com/dtd/web-app_2.3.dtd”>

<web-app>

        <display-name>Tapestry Test</display-name>

              <filter>

                     <filter-name>redirect</filter-name>

                     <filter-class>org.apache.tapestry.RedireectFilter</filter-class>

              </filter>

       <filter-mapping>

              <filter-name>redirect</filter-name>

              <url-pattern>/</url-pattern>

       </filter-mapping>

       <servlet>

              <servlet-name>Tapestry Test</servlet-name>

              <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>

              <load-on-startup>0</load-on-startup>

       </servlet>

       <servleet-mapping>

                     <servlet-name>Tapestry Test</servlet-name>

                     <url-pattern>/app</url-pattern>

       </servlet-mappint>

       </web-app>

      Tapestry应用程序必须使用ApplicationServlet作为他们的Serlet。有必要可以定义一个子类继承他。

 

Tapestry应用程序规范

<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE application PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">

<application name="Tapestry Test">

<meta key="org.apache.tapestry.page-class-packages" value="com.tapestry4.page" />

<meta key=”org.apache.tapestry.visit-class” value=”com.tapestry4.engine.MyVisit”>

<meta key=”org.apache.tapestry.disable-caching” value=”true” />

</application>

 

7. 针对官方所提供的组件应用按照起提供的组件Parameter进行配置使用,这里需要提到的是OGNL表达示,他是独立于Tapestry框架的表现层框架,其是页面类与组件之间的数据传递纽带,组件参数通过绑定OGNL表达式来访问页面类中的getter/setter方法,当然在Page中默认的表示即”OGNL:XXX”.

 

Tapestry5.3使用总结

1.Tapestry框架的加载是通过Filter来完成的,需要在web.xml中加入以下配置: app org.apache.tapestry5.TapestryFilter app ...
  • JavaMan_chen
  • JavaMan_chen
  • 2013年07月17日 10:16
  • 11273

Tapestry框架概述

Tapestry带来了真正的Java web应用程序OOP编程,摘自《深入浅出Tapestry》中的一句话。这本书也是我学习Tapestry的参考之一,其他参考资料如《Tapestry in acti...
  • jarwis
  • jarwis
  • 2016年07月14日 16:51
  • 2968

tapestry3创建自定义组件

两种方法创建自定义标签: 一.通过AbstractComponent父类渲染,此种方法直接在java类中编写页面脚本,然后输出。 1.编写java类com/ailk/ech/ecop/view...
  • lzf4712
  • lzf4712
  • 2015年08月18日 13:19
  • 1063

基于tapestry5.0实现的文件下载

r由于工作需要,最近需要实现
  • toby_java
  • toby_java
  • 2014年08月25日 09:56
  • 488

Tapestry灵魂——字节码生成

Tapestry最大的的一个特点就是通过字节码生成在运行时动态的创建页面的实例。这也是整个框架能有如此活力的基础。通过运行时的代码生成不仅使说明(specification),模板(template)...
  • qq435967718
  • qq435967718
  • 2016年10月26日 10:11
  • 413

Tapestry5项目的导入

@1 首先import导入项目后,点击项目右键选择如图1所示: @2 接着进入图2,选中Apache后点击edit @3 在图3中点击Add Ecternal JARs进入图...
  • Cheney1993
  • Cheney1993
  • 2016年06月28日 23:38
  • 281

Tapestry的template和specification定义在不同文件夹的方法

最近有朋友问:“把‘*.page’与‘*.html’完全分开,静态页面自己就是一个完整的项目,但Tapestry默认情况下是找不到的,有什么方法才能做到呢?”。     解决的方法很简单,Tap...
  • qq435967718
  • qq435967718
  • 2016年10月26日 10:09
  • 132

tapestry对Selenium测试的支持

首先,安装插件testNg - http://beust.com/eclipse 然后新建文件:src\test\resources\test\conf\testng.xml 内容为: ...
  • rjzjh
  • rjzjh
  • 2011年09月26日 15:54
  • 244

Tapestry4.1.2 入门教程

简单介绍   不必关心链接!不必关心请求(http request)到了哪里!不必关心响应(http response)要转向哪里!Tapestry构建于底层的request-resonse模式,基...
  • just_tigris
  • just_tigris
  • 2015年08月08日 15:55
  • 330

Tapestry

1、页面结构:  在Tapestry应用程序中,一个页面(page)由一个HTML模块,一个页面规范(page specification),和一个JAVA页面类(page class)构成。 2...
  • mianhuatangQi
  • mianhuatangQi
  • 2014年05月06日 11:30
  • 552
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tapestry笔录
举报原因:
原因补充:

(最多只允许输入30个字)