快速业务通道

了解Tapestry,第1部分 - 启动Tapestry并在Java环境中运行 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
说,Tapestry ApplicationServlet 映射到 app URI。这是 Tapestry 中的标准实践,所以可能想把这个描述符放到您的所有 Tapestry 应用程序中。(关于这一点,在第 2 部分中会学到更多。)

清单 4. 示例 Tapestry 描述符

<?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>Tutorial: DirectLink</display-name>   <servlet>    <servlet-name>app</servlet-name>    <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>    <load-on-startup>0</load-on-startup>   </servlet>   <servlet-mapping>    <servlet-name>app</servlet-name>    <url-pattern>/app</url-pattern>   </servlet-mapping> </Web-app>

了解Tapestry,第1部分 - 启动Tapestry并在Java环境中运行(9)

时间:2011-01-31 IBM Brett McLaughlin

代码展示!

到了现在,您可能非常想看看让 Tapestry 应用程序运行的实际代码。让人大吃一惊的是:几乎没什么代码要看!虽然很可能需要编写定制代码(而且这种情况也很常见),但是对于许多任务来说,只需要使用基本的Java 类。在Direct Link 应用程序中(在其中要显示动态值),Tapestry 加上大约 20 行 Java 代码就满足了需求。清单 5 显示了为 Direct Link 示例应用程序驱动计数器的简单 Java 类。

清单 5. Tapestry 非常简单的Java

import org.apache.tapestry.annotations.Persist; import org.apache.tapestry.html.BasePage; public abstract class Home extends BasePage {    @Persist    public abstract int getCounter();    public abstract void setCounter(int counter);    public void doClick(int increment)    {      int counter = getCounter();      counter += increment;      setCounter(counter);    }    public void doClear()    {      setCounter(0);    } }

有一个方法递增计数器,还有一个方法清除计数器,这就够了!没有特定于 HTML的逻辑,没有奇怪的Tapestry 交互(只有 @Persist 标注,在下一篇文章中将介绍它),以及两个获取和设置计数器的抽象方法。有了这个类负责计数器之后,只需要让 Tapestry 知道它要使用哪个标识符,那么像 Home.html 这样的页面组件就可以访问标识符了。可以通过 app.application 文件做这件事,这个文件保存在应用程序的WEB-INF/ 目录中,如下所示:

<?xml version="1.0"?> <!DOCTYPE application PUBLIC   "-//Apache Software Foundation//Tapestry Specification 4.0//EN"   "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <application>   <meta key="org.apache.tapestry.page-class-packages"   value="tutorials.directlink.pages"/> </application>

请注意 app.application 文件实际上没有把 Home.class 文件直接映射到名称;相反,它只是告诉应用程序应当到哪儿去寻找 Java 类。所以,在HTML 页面中的任何 Java 引用都会让 Tapestry 查看 tutorials.directlink.pages 包。不需要直接映射:包中的任何类,对页面来说都可用。在这个示例中,页面的名称(

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