快速业务通道

了解Tapestry,第2部分 - 规划和开发Tapestry应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
会话间不会被持久存储。因为订单在变化,所以在每次请求的时候查询它并检查它的状态会更容易。还请记住,因为业务对象通常在独立的 JVM 中运行,订单可能在另一个 JVM 中在变化,所以本地保留的对象拷贝可能会过时。

一般来说,只持久存储对客户来说不改变的条目(比如订单号本身,它在请求之间不会改变)或者不由业务对象使用的条目。例如,可能有一个分配给客户的表编号,业务对象不会在上面操作,所以让它持久存储在 Tapestry 中是可以接受的。

这个类中的最后一件事是添加了 getStatus() 方法,用于把订单号(已持久存储的)连接到订单,该订单是在每次请求时都要查询的。用户查找到他们的订单之后,就可以容易地通过订单的方法访问订单了;可以调用 order.getRemainingCookTime() 或 order.change() 方法,还可以在需要的时候让 Tapestry 把这些请求发送回业务层。

在您自己的应用程序中,这是惟一真正需要编写许多特定于 Tapestry 的代码的地方:当与显示有关的事件发生时,必须修改业务对象。用这种方式,Tapestry 把用户的动作连接到后端代码,后端代码对这些动作作出响应。

回顾 HTML 链接

Tapestry 代码就绪之后,就需要回到 HTML,把 HTML 与刚才编写的代码连接起来。实际上,要做的全部工作只是找到页面中的所有 a 和 span 元素。对于 a 元素,先找出哪个链接到外部页面 —— 在其他站点上、不是应用程序的一部分的页面 —— 并 “丢弃” 它们(换句话说,不用考虑它们)。剩下的应当具有像这样的链接:

<a href="Home.html">Return to main screen</a>

添加另一个属性,叫做 “jwcid”,它的值为 “@PageLink”。这让 Tapestry 知道正在创建到其他 Tapestry 页面的链接。现在的链接看起来像这样:

<a href="Home.html" jwcid="@PageLink">Return to main screen</a>

然后,把 href 属性的名称改成 “page”。page 属性让 Tapestry 知道要连接到其他哪个由 Tapestry 控制的页面(这就是为什么可以忽略外部链接的原因:它们在那呆着就很好)。然后,删除 “.html” 扩展名。现在的链接看起来像这样:

<a page="Home" jwcid="@PageLink">Return to main screen</a>

最后,a 元素要求 href 属性,所以把它添加回去,但是值为 “#”。这告诉 HTML 把它连接回同一页面,然后 Tapestry 处理实际的链接。最后的链接看起来像这样:

<a page="Home" jwcid="@PageLink" href="#">Return to main screen</a>

用这种方式把每个 HTML 页面中的每个链接进行转换,然后应用程序的导航会在 Tapestry 和动态页面之间开始工作,而不是在静态的 HTML 模板之间。

添加动态数据

现在需要把假日期更新成即时值。通过 @Insert 注释做这件事最容易。作为示例,请看清单 6,它把第一个 span 标记转换成使用来自与这个页面相关的 Tapestry 类的值:

清单 6. 添加真实数据到 HTML 模板

<html>   <head><title>Sales Report Prototype</title></head>   <body>   <h1>Prototype Sales Report</h1>   <div id="sales">    <table>    <tr><th>Total Sold</th><td><span jwcid="@Insert" value="ognl:totalSales"     id="total-sold">1012</span></td></tr>    <tr><th>Sales Price</th><td>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号