云自無心水自閑

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

          Tapestry最新版5.1.0.5教程(二)

          Posted on 2009-05-31 20:31 云自無心水自閑 閱讀(3008) 評論(0)  編輯  收藏 所屬分類: Java 、心得體會 、Tapestry

          1、Start.tml和Start.java
          Tapestry不需要在Web.xml中配置welcome頁面,也是使用約定大于配置的方式,默認的起始頁面就是在pages目錄下的Start。Tapestry中的頁面由兩部分組成:一個Java類和一個相同名字的模板文件(類似于jsp,Tapestry中的后綴名為:tml)。其中Java類是必須的,就算是沒有任何代碼,也必須要生成一個空類。tml模板在大多數(shù)情況下也是需要的,少數(shù)情況比如返回二進制流的話,可以不需要。
          tml模板文件可以放在webroot目錄下,也可以和Java類一直放在src目錄下。
          2、頁面的跳轉(可以用于指定跳轉頁面的東西:) @InjectPage
          在Tapestry中,頁面的跳轉和Struts之類的框架是不同的,Struts的做法是Action返回一個字符串,Struts在xml配置文件中進行搜索匹配,決定跳轉的頁面。而Tapestry沒有類似的配置文件,它的做法是在當前頁中引用跳轉頁面。比如:想從Start跳轉到Register頁面的話,需要在Start中注入Register頁面。示例代碼如下:
          Class Start{
                  @InjectPage
                  private Register register;

                  Object onSubmit() {
                          return register;
                  }

          其中值得注意的是:onSubmit的修飾符并不是常見的public,而是缺省級別(或者說是package級別),這是Tapestry推薦的做法。第一,比public級別低,這樣的話,頁面類的事件處理函數(shù)沒有被公開,不是其他所有的人都能隨便調用。第二,比private級別高,這樣如果測試需要的話,可以把測試類放在同一個package里,方便測試的進行。
          在Tapestry的事件處理函數(shù)中可以有6種方式指定跳轉的頁面
          a、什么也不返回,也就是返回類型是void,這樣的話,頁面不跳轉,只是刷新當前頁面
          b、字符串。Tapestry會查找與該字符串對應的類
          c、類。一般來說是一個Page類,這種方式比返回類名(字符串)要好,因為這樣的話,在類重命名后,程序不會出錯。
          d、Page實例,
          e、Link,
          f、流(Stream),比如返回pdf或者Excel文件。
          3、Tapstry頁面中的表達式
          類似于jsp中<%= 變量名%>這樣的寫法,Tapestry的語法是${變量名},其中變量名是需要在頁面對應的Java類中有get方法的。



          主站蜘蛛池模板: 新平| 宁陵县| 永仁县| 社旗县| 宾阳县| 获嘉县| 古田县| 蒙山县| 临夏县| 包头市| 建阳市| 西昌市| 措勤县| 宝应县| 南阳市| 清新县| 广汉市| 韶关市| 常宁市| 靖西县| 桐庐县| 锡林浩特市| 怀来县| 徐州市| 新河县| 哈巴河县| 青龙| 伊宁县| 柳州市| 兴城市| 宣威市| 常德市| 巴彦县| 华亭县| 南城县| 荔浦县| 库尔勒市| 洮南市| 峨眉山市| 关岭| 锡林浩特市|