云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理


          根據前面的4部分內容,我們已經了解了Tapestry的基本概念,掌握了配置、組件等內容?,F在我們通過剖析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
          教程很好。很實用。辛苦了?,F在國內用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>
          主站蜘蛛池模板: 都兰县| 灵山县| 平武县| 津南区| 名山县| 吴川市| 乐亭县| 通辽市| 贡觉县| 噶尔县| 甘德县| 科技| 大石桥市| 南漳县| 大余县| 云霄县| 平顶山市| 工布江达县| 乐亭县| 卓尼县| 信宜市| 宁乡县| 长岛县| 读书| 汉阴县| 南召县| 乌鲁木齐市| 西乌| 华宁县| 根河市| 合水县| 安阳市| 贵定县| 利津县| 岚皋县| 甘德县| 鲜城| 兴国县| 梅州市| 上思县| 淳化县|