学习Tapestry的十个关键点

开发 后端
本文向您介绍学习Tapestry的十个关键点,包括页面和组件、引擎、模版定位等Tapestry中的重点知识。

一、页面和组件

在学习Tapestry的过程中,页面和组件十个重要的知识点。Tapestry页面和大部分自定义组件拥有一个模板,一个定义了组件静态和动态部分的专门的HTML文件(页面和自定义组件包含.html文件和.page文件)

创建者指示嵌入的组件哪是激活的.(在.html文件的标签中使用jwcid来应用.page文件中声明的响应部分)

组件不必有模板,大部分组件给Tapestry提供生成代码当中的响应部分,而不是用模板(标准组件没有.html文件,只需要在.html文件中使用即可)

二、引擎,服务和朋友

引擎(Engine)是一个中心对象,学习Tapestry过程中,对引擎的理解很重要。通过存贮Engine到HttpSession中完成,引擎最终负责存储应用程序的持久化状态.(保存一个会话中的应用程序的持久化信息)

引擎服务负责对URLs编码,提供准确的传递给框架的查询参数以及精确的生成当URL被触发后应该执行的操作.

访问对象(visit object)一个应用级别的对象,最终持久的存储在HttpSession当中(类似于session)

全局对象(global object)一个应用级别的对象,存储全局的信息(类似于application)

三、模板定位

一个页面的HTML模板就是一个简单的HTML文件,一个页面包括一个根目录下的.html文件的HTML模板,一个WEB-INF目录下的.page文件的页面说明书文件,一个Java包中的类文件。

学习Tapestry过程中需要理解Tapstry搜索页面的HTML模板过程:

◆首先知道页面的名称和页面说明书(.page)的位置

◆搜索说明书(.page)所在的位置

◆搜索web应用程序的上下文的根目录

四、模板内容

组件能够被放置在模板里的任何地方,只需要为任何现有的标签加上jwcid属性,模板包含组件的两种方法:

◆声明组件:组件的类型定义在页面说明书里

◆隐藏组件:定义在模板里(Tapestry内置组件和自定义组件),要在组件类型前加上"@"符号

配置默认的属性名称(jwcid) org.apache.tapestry.jwcid-attribute-name

application文件中加入

<meta key="org.apache.tapestry.jwcid-attribute-name" value="newjwc"/>

五、组件的主要部分

一个组件的主要部分是模板文件中标签里嵌套的部分.

六、组件ID

学习Tapestry要知道每个组件在模板中只能出现一次,但可以通过copy-of属性来创建有新id的克隆组件.

七、指定参数

组件可以有正式和非正式两种参数.正式参数使用<parameter>元素定义,并使用<component-specification>元素的allow-informal-parameters属性指示它是否接受或拒绝非正式的参数.非正式参数默认为字符串值,除非他们有绑定前缀.

模板参数通常被转成字符串值,做为输出内容里额外的属性.一个特殊的情况,当非正式参数的值是一个IAsset,属性的值将做为URL.

八、正式参数和非正式参数

非正式参数可使用"ognl:"和"message:"前缀

组件使用<reserved-parameter>元素来声明它的保留名称,这些保留名称不允许使用非正式参数,因为组件不想让非正式参数去覆盖它的值,并会自己产生这些命名属性.

九、地方化

<span jwcid="@Insert" value="message:hello">Hello</span>
<span key="hello">Hello</span>

raw="true" 阻止过滤,如 "<" 不要扩展成 "&lt"

十、$remove$ jwcid

具有这个jwcid的标签就不再是一个组件了,它会从模板文件里被去掉,注:被移除的块里不允许再包含其他组件了。

  1. <tr jwcid="loop"> 
  2.  <td><span jwcid="insertFirstName">John</span></td> 
  3.  <td><span jwcid="insertLastName">Doe</span></td> 
  4. </tr> 
  5. <tr jwcid="$remove$"> 
  6.  <td>Frank</td> 
  7.  <td>Smith</td> 
  8. </tr> 
  9. <tr jwcid="$remove$"> 
  10.  <td>Jane</td> 
  11.  <td>Jones</td> 
  12. </tr> 

以上是笔者对自己学习Tapestry经验的一个总结;通过这十个关键点的学习,基本上可以使用Tapestry开发实际的项目了。

【编辑推荐】

  1. Tapestry函数执行顺序浅析
  2. Tapestry 5输入验证的实现方法
  3. JSP开发框架JSF对比基于Servlet的Tapestry
  4. Tapestry 5组件事件详解
  5. Tapestry5的性能改进浅析

 

责任编辑:佚名 来源: 百度空间
相关推荐

2019-02-01 10:05:33

开源游戏开发游戏引擎

2021-08-09 08:00:00

深度学习人工智能机器学习

2023-10-29 17:12:26

Python编程

2023-06-16 10:59:34

2024-02-04 17:21:37

C++编程开发

2010-09-17 13:49:09

2023-04-19 19:05:08

机器学习零售业

2022-12-22 14:47:50

数据治理数字化转型

2023-09-21 16:01:26

数字化转型数据管理

2023-12-25 10:53:54

机器学习模型性能

2024-04-19 13:21:55

2010-03-09 17:30:08

Linux新手知识点

2023-03-02 00:04:59

机器学习系统架构

2023-12-22 15:32:20

2015-06-15 14:14:47

架构/企业架构

2016-01-06 10:05:20

2022-10-13 00:06:04

数字化转数据智能数据治理

2022-11-07 14:29:46

机器学习零售业

2022-01-12 16:01:22

数字化转型企业技术

2023-06-09 10:27:13

Vue开源
点赞
收藏

51CTO技术栈公众号