云自無心水自閑

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

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

                  Object onSubmit() {
                          return register;
                  }

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



          主站蜘蛛池模板: 招远市| 双桥区| 大同县| 桦甸市| 织金县| 泉州市| 新和县| 会宁县| 大安市| 南阳市| 诏安县| 泰兴市| 九台市| 敖汉旗| 通城县| 明溪县| 虹口区| 怀来县| 武山县| 应城市| 柳河县| 丹棱县| 九江县| 秀山| 神农架林区| 海南省| 遂昌县| 鄯善县| 翁源县| 收藏| 浙江省| 龙门县| 浮山县| 彭泽县| 田林县| 资阳市| 札达县| 牟定县| 韩城市| 广河县| 大荔县|