云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理


根据前面的4部分内容,我们已经了解了Tapestry的基本概念,掌握了配置、组件等内容。现在我们通过剖析Tapestry的入门示例来对Tapestry进行一个总体上认识。
1、web.xml
<web-app>
    <display-name>app Tapestry 5 Application</display-name>
    <context-param>
        <!-- The only significant configuration for Tapestry 5, this informs Tapestry
of where to look for pages, components and mixins. -->
        <param-name>tapestry.app-package</param-name>
        <param-value>t5demo</param-value>
    </context-param>
    <filter>
        <filter-name>app</filter-name>
        <filter-class>org.apache.tapestry.TapestryFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>app</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

这就是一个最简单的Tapestry应用所需要配置的内容了。
a.context-param中的tapestry.app-package配置,这在第一部分说过:这是Tapestry要求配置的java package的名称,Tapestry相关内容都需要在这个package下面的pages, services, componets子package下。这里的配置是t5demo
b.TapestryFileter的配置。这个非常容易理解,几乎所有现在流行的web框架都需要一个类似的定义。

2、start.tml以及相应的java class,例子中就是t5demo.pages.Start.java
Start.java非常简单,只定义了一个get方法:
public class Start
{
        public Date getCurrentTime()
        {
                return new Date();
        }
}
相应的页面start.tml
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
    <head>
        <title>app Start Page</title>
    </head>
    <body>
        <h1>app Start Page</h1>

        <p> This is the start page for this application, a good place to start your modifications.
            Just to prove this is live: </p>

        <p> The current time is: ${currentTime}. </p>


        <p>
            [<t:pagelink t:page="Start">refresh</t:pagelink>]
        </p>
    </body>
</html>

首先要注意在html的tag中加入了Tapestry的命名空间。
第二、${currentTime}就是Tapestry的Tag了,这里就会调用对应class的getCurrentTime方法在页面上显示对应的值。
第三、<t:pagelink>定义一个到自己本身页面的链接,来完成刷新的任务。t:pagelink在本系列的第4部分介绍过。

3、需要的library:
commons-codec.jar
javassist.jar
log4j.jar
slf4j-api.jar
slf4j-log4j.jar
tapestry5-annotations-5.1.0.5.jar
tapestry-core-5.1.0.5.jar
tapestry-ioc-5.1.0.5.jar

4、再加上一个log4j.properties,这就是一个最简单的tapestry应用所需要的全部东西了。
怎么样,感觉还是挺简单的吧。




评论

# re: Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析  回复  更多评论   

2010-03-03 00:43 by idreamer
教程很好。很实用。辛苦了。现在国内用tapestry的很少(据我所知),不过我感觉还是资料太少,难普及。

# re: Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析  回复  更多评论   

2010-03-03 00:45 by idreamer
调试建议加上:
<context-param>
<param-name>tapestry.production-mode</param-name>
<param-value>false</param-value>
</context-param>

# re: Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析  回复  更多评论   

2010-03-04 06:22 by usherlight
@idreamer
Tapestry目前反映最多的问题就是文档,Tapestry的作者Lewis现在正在考虑是把他的精力投入到文档中,先写一本书呢,还是先把5.2给完成了。

# re: Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析[未登录]  回复  更多评论   

2010-04-29 17:31 by hotjava
<filter>
<filter-name>app</filter-name>
<filter-class>org.apache.tapestry.TapestryFilter</filter-class>
</filter>

-------------------
楼主应该先做下验证再来发表文章,你觉得这样的配置能跑通么?呵呵

# re: Tapestry最新版5.1.0.5教程(五):Hello示例程序的剖析  回复  更多评论   

2010-05-11 20:34 by usherlight
Tapestry5开始,package里的tapestry改为了tapestry5
谢谢指正。
<filter>
<filter-name>app</filter-name>
<filter-class>org.apache.tapestry5.TapestryFilter</filter-class>
</filter>

只有注册用户登录后才能发表评论。


网站导航: