快速业务通道

WEB开发模式Tapestry简介 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
的属性jwcid,这正是tapestry设计的精妙之处,它的表现层可以说几乎是99%的纯HTML,只是增加了一个jwcid属性,jwcid=”user”在这里的意思是在<span> … </span>之间放置一个名为user的组件。这里要指出的是jwcid属性不仅仅可以放在span标签内,它可以放在任何的HTML标签内,比如<title>、<body>、<form>等等,至于为什么要选<span>的原因是<span>标签不影响网页的输出效果,这就大大方便了美工人员,他们可以直接使用frontpage或dreamwaver来进行设计,而不像JSP那样无法在frontpage或dreamwaver中正常显示。

也许你会问,网页上输出的用户名明明是Jack嘛,为什么HTML模板中是User name呢?这是因为当tapestry一旦发现某个HTML标签有jwcid的属性后,它就会把这个标签当做一个组件来看待,至于标签里面的东西到底是原样输出或忽略就要依照那个组件的类型而定了,在这里我们的user组件实际上是一种Insert类型的组件,因此会把<span>标签内的内容忽略掉,其实也可以直接写成<span jwcid=”user”></span>,效果也是一样的,只不过加了User name后就方便了美工人员的排版设计。

请注意,HTML模板有它自己的命名规范,它的文件名应该与Page组件的定义文件相同,只不过是扩展名为.html,与普通的web服务器一般都有一个index.html类似,tapestry也有自己的”index.html”,只不过它的名字不是”index.html”,而是Home.html,那么这些模板文件究竟应该放在哪儿呢?很简单,放在当前应用的目录下面就行了,比如我们的应用是Welcome,那把它放在webapps/Welcome目录下面就行了。

Home.page

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd"> <page-specification class="demo.Home"> <component id="user" type="Insert"> <binding name="value" expression="userName"/> </component> <context-asset name="$template" path="Home.html"/> </page-specification>

以上这个文件便是这个名为”Home”的Page组件的页面定义文件,它好像是一座桥,联系着HTML模板和JAVA类进行协同工作。这个定义文件“Home.page”实际上就是一个xml文件,它的根元素是page-specification,它有一个名为class的属性,用来指示HTML模板与哪个java类协同工作,在本例中为demo.Home这个类。

Component元素是对HTML模板中引用的组件的定义,id属性名一定要与HTML模板中的jwcid一样,type指定了这个组件属于哪种类型,在本例中为Insert组件,Insert组件是Tapestry中的一个基本组件,它的作用是在HTML模板中插入指定的文本,待插入的文本的值由Insert的value属性来决定,在本例中,value属性的表达式值是userName。你这时候可能会觉得越看越糊涂:那为什么最后运行结果会是Jack呢?不要着急,关于这个我们马上就要详细地进行讲解。我们还是先看一下最后一个元素context-asset,这个元素是定义这个Page组件要用到的一些附加资源,比如图像、css格式文件等等之类的东西

现在我们开始认真地讲一下<binding name="value" expression="userName"/>这个元素的含义,由于HTML模板嵌入的是一个Insert类型的组件,而Insert组件的功能是插入一段文本到HTML模板中去,对于本例而言

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号