<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vikings

    Tapestry 4.0 beta 新特性4-7

    Tapestry4新特性(四)-源代碼標注的異常處理
    Tapestry本來提供的debug功能就十分強大,4.0版本中提供了更加詳細的報錯機制,可以顯示錯誤的代碼,并在報錯的地方加亮標注,具體截圖請看附件(誰能告訴我怎么將多余的照片刪除呀)
    x1pc_jqddVOWRleOL7C8xpqaKS3AGUAvBT1MIRFANda_NKbU4VLeU4oBwzLDK28sn7jVevA1K85S_hQ00Oz6G95NKXye0F245JuqXGvav5vixzNs9HU6A4cW4wlt3uPg1dt.jpg


    Tapestry4新特性(五)-Friendly URLs
    Tapestry4.0以前版本中的URL一直被人所詬病,當然現在已經有很多的解決方
    案,4.0版本中已經對此做了改進,
    因為現在的版本需要通過hivemind來配置,所以需要設置hivemind.xml中的一些屬
    性,具體配置如下:
    <?xml version="1.0"?> 
    <module id="tapestry4" version="1.1.0">
     <contribution configuration-id="tapestry.url.ServiceEncoders">
      <page-service-encoder id="page" extension="html" service="page"/>
      <direct-service-encoder id="direct" stateless-extension="direct"
       stateful-extension="sdirect"/>
      <asset-encoder id="asset" path="/assets/"/>
      <extension-encoder id="extension" extension="svc" after="*"/>
     </contribution>
    </module>

    同時web.xml中加入映射:
    <servlet>
    <servlet-name>tapestry4</servlet-name>
    <servlet-class> org.apache.tapestry.ApplicationServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>tapestry4</servlet-name>
    <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>tapestry4</servlet-name>
    <url-pattern>*.direct</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>tapestry4</servlet-name>
    <url-pattern>*.sdirect</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>tapestry4</servlet-name>
    <url-pattern>/assets/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>tapestry4</servlet-name>
    <url-pattern>*.svc</url-pattern>
    </servlet-mapping>
    如果希望首頁的調用不是通過/app來映射,可以在web.xml中更改redirect:
    <filter-name>redirect</filter-name>
    <filter-class>org.apache.tapestry.RedirectFilter</filter-class>
    <init-param>
    <param-name>redirect-path</param-name>
    <param-value>/Home.html</param-value>
    </init-param>
    </filter>
    這樣鍵入http://localhost:8080/tapestry4,系統導航到http://localhost:
    8080/tapestry4/Home.html,
    添加一個Page頁面例如Test.page,在Home.html中加入<a href="#"
    jwcid="@PageLink" page="Test">test</a>,
    在生成的Home.html中生成的test的鏈接地址為:http://localhost:
    8080/tapestry4/Test.html

    Tapestry4新特性(六)-自動定位頁面類文件

    關于此特性的介紹請參考:http://jakarta.apache.org/tapestry/current/UsersGuide/page-class.html 說明:
    通俗點說就是您可以不定義.page文件或者定義的.page文件中不指定class 屬性,而讓服務器自動根據.html文件的路徑來尋找對應的類文件。 配置:
    在.application的定義文件中添加: 這樣如果在文檔根目錄下有個Home.html文件,你就可以將Home.java放到 org.edynasty.pages(實際開發中配置為您自己的包名)包中,tapestry自動根據 Home.hmtl構造org.edynasty.pages.Home來定位頁面的類文件,當然您也可以在WEB -INF目錄下放一個Home.page,不需要定義class屬性,tapestry自動按照上邊的原 理定位。 效果:
    這樣您可以不需要維護.page中的class屬性,直接根據.html文件來寫對應 的類文件。而且可以根據業務邏輯來定義目錄結構,例如將 org.edynasty.pages.user定義為user相關的類,.html也就可以放到user目錄下 邊,目錄結構如下: user/ListUsers.html user/EditUser.html course/ListCourses.html course/EditCourses.html Home.html


    Tapestry4新特性(七)-Application和Session范圍對象的使用
    Application和Session范圍對象的使用

    關于此特性的介紹請參考:http://jakarta.apache.org/tapestry/UsersGuide/state.html
    說明:
    Application和Session范圍的概念就不說了,T4以前的版本只可以分別指定一個對象,
    以前版本的定義如下:
    <property name="org.apache.tapestry.visit-class" value="your.package.Visit"/>
    <property name="org.apache.tapestry.global-class" value="your.package.Global"/>,
    T4中可以指定任意多的對象,而且默認的visit和global仍然可以使用。

    配置:在hivemodule.xml的定義文件中添加:
    <contribution configuration-id="tapestry.state.ApplicationObjects">
    <state-object name="applicationUser" scope="application">
    <create-instance class="org.edynasty.model.User"/>
    </state-object>
    <state-object name="sessionUser" scope="session">
    <create-instance class="org.edynasty.model.User"/>
    </state-object>
    </contribution>
    兩個user分別對應Application和Session范圍,在需要使用user的page中注入:
    <inject property="applicationUser" type="state" object="applicationUser"/>
    <inject property="sessionUser" type="state" object="sessionUser"/>,通過
    getter和setter方法調用。

    效果:怎么說呢,可以不需要在一個visit中定義N多屬性,因為Session的創建需要資源,
    只要操作一個visit的屬性,就需要創建整個visit,分別定義之后,可以在需要存取時分別創建。

    posted on 2005-11-08 18:00 Vikings 閱讀(435) 評論(0)  編輯  收藏 所屬分類: frame-work

    主站蜘蛛池模板: 亚洲国产激情在线一区| 国产精品V亚洲精品V日韩精品 | 中文字幕无码一区二区免费| 亚洲第一页日韩专区| 国产亚洲精品91| 亚洲国产综合无码一区二区二三区 | 亚洲欧洲日产国码久在线| 成人黄页网站免费观看大全| 亚洲爆乳AAA无码专区| 免费一看一级毛片全播放| 人人爽人人爽人人片A免费| 中文字幕精品无码亚洲字| 国产一级a毛一级a看免费人娇| 亚洲AV综合色区无码另类小说| 国产精品99久久免费观看| 亚洲国产日韩女人aaaaaa毛片在线 | 国产又黄又爽又大的免费视频 | 色婷婷亚洲十月十月色天| 国产精品永久免费10000| 亚洲人成无码网站在线观看| 国产免费怕怕免费视频观看| eeuss影院免费92242部| 亚洲精品无码成人AAA片| 成人黄色免费网站| 国产尤物在线视精品在亚洲| 亚洲精品无码久久一线| 久久国产乱子伦免费精品| 亚洲熟女乱色一区二区三区 | 成人免费毛片内射美女-百度| 亚洲AV第一成肉网| 亚洲精品乱码久久久久久| 精品福利一区二区三区免费视频 | 亚洲国产成人久久精品99| 国产精品区免费视频| 亚洲中文字幕无码av永久| 亚洲精品无码久久久久AV麻豆| 久久综合给合久久国产免费| 亚洲av无码一区二区三区四区 | 亚洲处破女AV日韩精品| 黄色成人网站免费无码av| 久久www免费人成精品香蕉|