freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

tapestry4初級開發(fā)指南(已修改)

2025-09-01 12:11 本頁面
 

【正文】 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 1 Tapestry4 開發(fā)指南 作者:董黎偉 藝名:干煸四季豆 Email: 注:以前弄了個論壇專題討論 tapestry,不過后來太忙,也想偷懶,所以就沒有堅持,現(xiàn)在到是常去 javaeye,有問題可以在那里提。我相信 Tapestry 知識比我豐 富的朋友還有很多,希望能夠有機會大家多做交流。 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 2 一, 簡介 使用“開發(fā)指南”這個名詞,實在是慚愧。隨著接觸面的增廣,隨著各種技術(shù)的不斷了解,才逐漸發(fā)現(xiàn)自己欠缺得更多。書讀得越多,才發(fā)覺自己的知識越匱乏。半年前,非常自不量力地將自己對 的實踐總結(jié)出來,寫了一個所謂的《 Tapestry 開發(fā)指南》,而現(xiàn)在 Tapestry4 發(fā)布,我覺得將這個所謂的“開發(fā)指南”更新到 Tapestry4,對自己來說,更像是一種交代。有很多不足之處,希望朋友們能夠不遺余力地指出,就是對我最大的支持。 Tapestry4 的雛形是 , Tapestry 的作者 Howard,不光開發(fā)了 Tapestry,還同時開發(fā)了一個輕量級框架 Hivemind。所以 Hivemind 框架之下。后來由于種種原因, Howard 沒有將 從 Hivemind 中剝離出來,于是就成為了今天的 。 很多朋友都不是很認同 Hivemind,認為 Hivemind 是與 Spring 類似的 IoC 框架。剛開始的時候,我也同樣很不認同 Hivemind,畢竟使用 Spring 很熟悉了 。而且我們團隊的整個技術(shù)架構(gòu)已經(jīng)日趨成熟。就如同我當初評價 Tapestry4 與 Hivemind 之間的融合:“除非有足夠且必要的理由,不然別說讓我去說服團隊將 Spring 轉(zhuǎn)型為 Hivemind,就連我自己都說服不了自己?!? 隨著對 Tapestry4 的深入,我開始理解為什么 Howard 沒有將 Tapestry 從 Hivemind 中剝離。就團隊而言,我依然不認為有必要說服團隊轉(zhuǎn)型。但是就我個人而言,僅僅在 IoC 和DI 的使用上,我卻覺得使用 Hivemind 比 Spring 簡單。當然,簡單并非最重要的理由,但是當我們處于某 一個特殊條件下,或許使用 Hivemind 也不失一個值得參考的選擇。另外,最重要的是,如果著眼于 Tapestry 本身, Hivemind 就好比是一個良好的地基, Tapestry 作為上層建筑,任何我們認為不合理,不適合自己特殊需要的 Tapestry 官方實現(xiàn),都可以通過Hivemind 的 IoC 及 DI 進行重構(gòu)。 于是,現(xiàn)在的 Tapestry4 變得非常有趣,首先,它本身是一個框架,可以使用 Tapestry4來創(chuàng)建動態(tài),靈活的 web 應(yīng)用程序,另外,可以通過 Hivemind 對 Tapestry4 自身功能進行重構(gòu),以便實現(xiàn)任何 我們希望達到的特殊功能。打個比方說: Tapestry4 就好比一把起子,我們可以通過 Hivemind 對這把起子的起子頭進行任意更換,這樣我們就可以適應(yīng)任何形狀或者接口的螺絲。在后面,我們會看到令人興奮的示例來介紹這種“換起子頭”的思想。 關(guān)于 的理論知識,如果有興趣,可以參看我以前寫的,關(guān)于 的開發(fā)指南。實際上,雖然版本升級了,使用方式也有了很大變化,但是 Tapestry 本質(zhì)的思想和理論并沒有變化。這就是為什么雖然 才剛剛發(fā)布,我卻可以比別人更快地熟悉 的使用。對于理論的介紹,這里就不在累述了。記得我以前學習 的時候,還是通過查詢 的理論資料來學習的。對于本文檔,我希望定位在快速熟悉 。凡是我在本文檔中提到的組件,如果沒有做特別解釋,那么就表示其用法與 T3 中基本相同,而對于 T3 的組件,我在以前些的文檔中已經(jīng)介紹了絕大部分。所以如果你是新手,建議你先參看我以前寫的文檔( 開發(fā)指南 )。 二, Quick Start 現(xiàn)在 Tapestry4 已經(jīng)發(fā)布 beta9版本,從其 change log 上,我們可以看到, Tapestry4 的開發(fā)已經(jīng)日趨成熟,基本上官方現(xiàn)在修改最多的都已經(jīng)僅僅是文檔。所以,我現(xiàn)在已經(jīng)在使用 Tapestry4 來開發(fā)項目。 為了配合這篇 user guide,我寫了一個 quick start 示例。我們可以一步一步從項目配置開始,逐步了解 Tapestry4。 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 3 1) 搭建環(huán)境 我們需要如下東東: 及其以上版本: 及其以上版本: Java SE 及其以上版本: : 包: 支持包: OK,現(xiàn)在我們開始搭建 Tapestry 項目。對于 Eclipse 的配置,我們就略過了。 使用 MyEclipse 新建一個 Web Project: 我們將項目名稱命名為 MyTapestry4: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 4 點擊 Finish,我們新建了一個 Web Project: 然后我們將下載好的 Tapestry4 及其支持包拷貝到 WEBINF/lib/目錄中: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 5 然后將包文件載入項目: OK , 基 本 的 項 目 配 置 完 成 , 現(xiàn) 在 我 們 在 src 下新建包: : 然后在 WEBINF 目錄下新建一個 XML 文件 ,命名為 ,內(nèi)容如下: 在這里, 中 module 的 id 是與 java 包名 對應(yīng)的,這個 id 只是起標識的作用,因為 Hivemind 可以擁有很多的配置文件,所以一般都使用包名作為id 以保證唯一性。 接著,我們在 WEBINF/目錄下再新建一個 application 文件 ,其內(nèi)容如下: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 6 在 application 文件中,我們做了兩件事: 第一:聲明了項目名稱: name=”MyTapestry4”; 第二:我們定義了 page 文件與 java 文件相互對應(yīng)的默認包路徑, Tapestry4 根據(jù)這個路徑自動去尋找與 同名的 文件,如果找不到,那么就會默認使用 BasePage 類。 然后我們進行 配置: 為了測試項目是否已經(jīng)正常配置,我們可以做點小測試: 首先在 下新建一個 文件: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 7 在 Tapestry4 中, java 文件可以不再是 abstract 的,這個差別相比于 Tapestry3 還是很突出的。因為一個很簡單的理由,一旦 Tapestry4 的 java 文件不再是抽象類,那么就可以進行單元測試了。在后面,我們會看到如何進行單元測試。 接著在 WEBINF/下建一個 文件: 最后,我們在 web/目錄下新建一個 文件: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 8 2) 讓我們的項目跑起來 將 resin 解壓到硬盤,當然,使用 tomcat, jetty 等,都可以用下面的方式來啟動項目。 首先,打開 Eclipse 的 Window Preference : 在 MyEclipse 的 Application Server 選項下,我們找到 Resin3,然后在右邊進行 Resin 配置。首先指定 Resin Server 為 Enable,然后指定 Resin Home Directory 地址。 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 9 然后我們要確保 JDK 的版本是否正確,并且加載兩條 JVM 參數(shù): =true =true 使用過 Tapestry3 的朋友對這兩條參數(shù)都非常熟悉了,它們的作用是關(guān)閉 Tapestry 的頁面緩存,這樣就能夠讓我們在開發(fā)項目的 時候,修改 html 和 page 之后,不需要頻繁地重新啟動項目。但是在加載這兩條參數(shù)之后,內(nèi)存消耗比較大,所以在項目發(fā)布的時候,我們就不再使用這兩條參數(shù)了。 一旦你正確地配置了 Resin,我們就可以在 MyEclipse 中啟動 Resin 了。首先點擊MyEclipse 的 J2EE 項目配置管理: 然后在下拉菜單中選擇我們的 MyTapestry4 項目,點擊右邊的 Add 按鈕: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 10 選擇我們已經(jīng)配置好的 Resin Server,最后點擊 Finish。 OK,現(xiàn)在我們可以清楚地看到,我們的項目已經(jīng)被部署到 Resin 的 deploy 目錄下了。 接著,我們啟動 Resin,就可以啟動我們的項目了: 在 Eclipse 的控制臺,我們可以清楚地看到項目啟動的整個過程: 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 11 嘿嘿, OK 了。我們的項目已經(jīng)搭建成功,打開一個瀏覽器,在地址欄中輸入: 其實搭建 Tapestry4 項目,很簡單吧? ^0^? 三, 更深入使用 現(xiàn)在 ,我們還是和以前一樣,做一個最熟悉的示例:購物車。只是這次我們手把手一步一步地完成這個示例。 1)登陸 OK,現(xiàn)在項目已經(jīng)搭建完成了,對于購物車示例,第一個頁面應(yīng)該是一個登陸頁面。登陸頁面應(yīng)該有一個表單,有一個用戶名輸入,一個密碼輸入,同時還需要對用戶名和密碼進行效驗。 修改 文件如下: package 。 import 。 import 。 public abstract class Home extends BasePage { //用戶名 成都麥柯 技術(shù)開發(fā)二部 成都麥柯系統(tǒng)集成有限公司 12 public abstract String getUsername()。 //密碼 public abstract String getPassword()。 //登陸表單的監(jiān)聽方法 public void loginSubmit(IRequestCycle cycle) { (())。 (())。 } } 在 文件中,我們修改如下: ?xml version= encoding=GBK? !DOCTYPE pagespecification PUBLIC //Apache Software Foundation//Tapestry Specification pagespecification property name=username/ property name=password/ ponent id=loginForm type=Form binding name=listener value=listener:loginSubmit/ /ponent ponent id=username type=TextField binding name=value value=username/ /ponent ponent id=password type=TextField binding name=value value=password/ binding name=hidden value=true/ /ponent /pagespecification 首先我們看到的是對 username 和 password 兩個 pro
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1