概述
起初,WEB頁面是一個為所有訪問者提供一個統一的信息靜態實體。開發者很快就想到為擁有一種為每一個用戶提供唯一數據的能力,一個大的技術分類隨之而來,比如PHP,ASP和JSP。當這些語言在解決這個問題的同時,也導致了一個非常大的問題。
這些語言直接和HTML標簽相混合,導致程序可維護性大大降低。如果開發者想改變頁面外觀,修改工作將難以進行。
幸運的是,模型-視圖-控制器(MVC)設計范例完全把私有代碼從頁面和數據中分離出來。使用MVC模式進行設計時,WEB設計者只關注于創建頁面表現外觀,而WEB開發者則只需關注代碼的處理。Velocity是一種用于從私有代碼中分離Java Web代碼的技術(通過MVC方式), Web設計者通過使用java基礎模板,引用用java書寫的私有代碼。
這本書提供了一個使用Velocity1.3.x創建可維護站點的綜合處理方案(通過本書示例的幫助)。
這本書里有些什么?
因為Velocity是為Web設計者和開發者而設計的,這本書包含了VTL(velocity模板語言)的全部內容。我們展示了如何把VTL語言應用到你的Velocity模板的窗體數據里,以及如何使用這些模板開發應用程序。
我們假定你不知道Velocity,因此在編寫第一個實際應用之前,我們提供了一個示例以便于你能夠理解系統是如何工作的。在這個實例里,我們展示了如何利用MYSQL數據庫來構建一個CD收藏應用。通過這個應用,你將學會如何利用MVC方式書寫代碼。你也將學會如何用velocity模板來進行web輸出、文本報表和生成XML。本書第二個示例是一個酒店預約系統,用于驗證如何使用Maverick 和 Velocity 模板來構建一個完整的WEB應用。這個應用允許用戶使用某幾個標準進行房間信息搜索,預訂想要的房間,然后顯示預約確認。許多Velocity模板和三個控制類被用于完成應用,用一個Velocity模板來展現。
誰最應該讀這本書
本書是為幫助WEB開發者和WEB設計者維護和開發WEB站點和應用而寫的。許多組織把這些分成WEB設計者和軟件開發者這兩個角色,并分別雇用圖形設計者來進行WEB表現設計和雇用軟件設計者來進行WEB開發。這兩個角色都是(critical)獨立的:WEB開發者專注于Servlet Veloctiy后端(back-end)支持,WEB設計者利用WEB開發者提供的后端支持進行界面設計。
在這里,我們假定WEB開發者已經具備JAVA開發工作的經驗和知識,并且已經能夠熟練使用servlets和EJBs進行交互,同時假定WEB設計者已經具備HTML開發工作的經驗和知識。如果他們(exposure)不得不使用JSP/ASP或其他服務器端語言進行開發,Velocity將很容易進行轉換(雖然我們假定他們不了解這些知識)。
本書由三部分組成。第一部分是MVC和Velocity的介紹。一旦你已經掌握或了解了(under your belt)這些介紹性的知識,我們將進入Velocity語言和它的特性討論環節(第二部分)。最后,第三部分提供了許多示例和全面的示例應用,并舉例說明如何使用Velocity。
Part I: Velocity和MVC介紹
Chapter 1: Web開發基礎(development basics)
直到今天,Internet開發僅僅是目前技術革新的一小部分。通過internet,把相互連接性進一步延長,它允許個體和公司以相同的方式向全球成千上萬的客戶和朋友呈現信息。最初,WEB頁面開發僅限于使用HTML來產生一個靜態頁面。
隨著internet語言的進化和站點需求的增加,開始向動態頁面發展,并利用數據庫進行數據管理和復雜應用處理。新的復雜性是,結果常常導致在同一個文件里混雜view和處理代碼。Velocity利用MVC方式為設計者和開發者提供了一個解決方案。本章為internet發展歷史和velocity是如何brings to the table(使表恢復知覺?)提供了一個全面的概覽。
Chapter 2: MVC基本原理
當Smalltalk-80設計出來的時候,一個叫做Model-View-Controller(MVC)的體系被用于從數據和控制邏輯中分離view,幾年過去了,MVC已經變成一個能夠被所有現代語言所應用的模式。MVB已經帶進WEB舞臺,同時能夠被Velocity充分利用。
本章給你一個全面的MVC概覽,同時向你解釋MVC在internet開發處理中的角色。我們向你呈現了代碼示例,同時描述了每一個MVC組件是如何解決在創建組合代碼過程中所出現的問題。
Chapter 3: Velocity介紹
本章主要介紹Veloctiy。我們向你呈現了Velocity是如何工作的,并且調試我們在本書中將使用的代碼。隨著學習的深入,你將對這個系統有一個好的理解。
Part II: Velocity 基礎
Chapter 4: 安裝Velocity
在你開始關注Velocity細節之前,你必須先安裝它。本章提供了一個全面的Velocity安裝手冊。涵蓋windows和Unix平臺下所有必須的開發工具和先決條件包。我們將對Velocity測試組進行全面討論,同時提供一個執行示例應用的手冊和sevlets支持包。一些支持包包含了Java SDK和一個應用服務器(比如Tomcat或Resin)。
Chapter 5:創建Hello World 示例
正如你所期待的一樣,一個新的開發范例都是從Hello World應用開始的。在這一節里,你將書寫你的第一個Velocity應用-but with a twist。你可以書寫用于單機和WEB格式的應用,以此證明Velocity能夠用于任何類型的應用輸出。當然,書寫代碼僅僅是戰斗的一部分——你還必須能夠部署和執行你的應用。本章將告訴你每一個詳細的步驟。
Chapter 6: 理解和模板和上下文
Velocity的兩個主要組件就是templates模板和context上下文。模板為WEB設計者創建應用界面提供了一個區域,這個界面將通過單機應用生成一個WEB頁面或產生一個報表;上下文為WEB開發者放置所有設計者designer和Velocity模板所需要的信息提供了一個區域。本章將介紹這些組件。我們將通過調試一個完整的示例來展示組件是如何在一起工作的,同時,我們將討論他們的一般用法。
Chapter 7: Exploring References引用探索
在Velocity內部,引用在模板和上下文(一個存儲數據的地方)之間提供了一個接口。在這一節里,我們將描述以下三種類型的引用:語法、正式的和非正式的(?),我們也將討論逃逸(escaping)、靜態(quiet)和屬性符號(property notation),同時提供一個示例來說明這些概念。
Chapter 8: 使用指令(Directives)
Velocity和許多別的Internet語言一樣,提供了一個命叫指令(directives)的控制和判斷結構,這些指令(如#foreach 和 #if)為WEB設計者提供了一個強大的工具,來熟練操作上下文中的數據。本章涵蓋了directives和includes示例,同時也包含了一個用于快速查找的引用片段。
Chapter 9: Velocimacros介紹
當你發現自己再三重復同樣的Velocity代碼時,你就應該開始學習velocimacros了。這些宏允許你創建一些用于模板的模塊,以產生清晰(clean-looking)的代碼,同時有助于今后開發的維護。本章涵蓋了velocimacros內容,同時提供了廣泛的例子。
Chapter 10: Velocity控制器討論
Velocity開發者需要包含了幾個結構——比如事件、資源加載和其他系統屬性(幫助你定制Velocity的行為)。本章用示例來說明如何更改Velocity模式以適用于你的應用。
Part III: Velocity開發
Chapter 11: Velocity, XML, 和 Anakia
XML是宣傳和介紹的最多的技術。用于HTML時,XML允許用戶自定義標記來識別包含在文本里的數據。為了使XML更易用,人們設計了XSLT,用于快速、便捷地操控和轉換XML數據。
Anakia設計者使用Ant任務,利用強大的XSLT功能(found)和XML來創建輸出。
Chapter 12:在Servlets里使用Velocity
當你使用Velocity開發應用時,MVC范例模式是創建可維護性應用最有效方式。第一個控制器開發的就是Servlet。本章里,我們將向你展示如何使用Servlet和Velocity書寫一個CD收藏應用。許多模板都是有插圖的,同時我們將討論在下載表文件的窗體里利用Velocity來輸出文本。該應用同時也利用了EJBs來作為MVC范例模式的模型(model)組件。在EJBs里,數據通過Collection(收藏)對象窗體里的上下文來傳遞到模板。VTL指令(directives)把顯示給用戶的Collection(收藏)數據填充到數據庫行。
Chapter 13: Velocity和國際化
當你正在設計一個WEB應用的時候,你可能習慣考慮使用母語來書寫應用里的文本,但是你可能忘記了其他國家的用戶或許正在使用這個應用的功能。雖然Velocity不能改變在JAVA基礎WEB應用上完成國際化任務的現狀,但它提供了一個創建被許多語言理解的兼容站點的框架。本章展示了如何把德語文本增加到你的CD收藏Velocity應用中。使用這個本章介紹的這個技術,你可以很容易地為你的Velocity應用增加其他語言支持。
Chapter 14: 在Turbine(渦輪)里應用Velocity
在Jakarta的開發小組中,Turbine是一個為開發者提供的創建企業級應用工具的應用框架,其目標是提供一個讓開發者自行創建其想要的組件框架(?)。
在本章里,我們將討論如何使用Turbine和Velocity獲取、安裝和部署一個應用。讓你利用Turbine的MVC支持進行Velocity開發。
Chapter 15: 在Maverick里使用Velocity
如果你正在使用J2EE和MVC構建一個應用,可以考慮使用Maverick框架。這個框架聯合了Velocity和DVSL,它允許你構建一個企業級的XML應用。你也可以在應用中混合使用JDBC和EJBs。
Chapter 16: Velocity IDEs
雖然許多開發者和設計者都使用文本編輯器來操作他們的WEB頁面,一些人更喜歡使用IDE。本章提供了各種不同的第三方IDE插件和文本編輯器插件。我們將涵蓋許多開發工具的插件,比如IntelliJ's IDEA, UltraEdit, JEdit, TextPad,和 Emacs。
Chapter 17: 在Struts里使用Velocity
Struts或許是目前用得最多的MVC框架了。Velocity團隊預期的開發目標是使用Velocity作為MVC框架里的VIEW組件,同時創建可利用的接口包來進行綜合處理。本章為使用Struts和Velocity創建一個應用提供了完整的說明。
Chapter 18: 酒店預約Velocity應用系統
在這一節時里,我們使用Velocity和MVC框架書寫了一個完整的WEB應用文檔。我們使用許多模板來為WEB用戶提供輸入和顯示頁面。控制器使用MYSQL數據庫跟蹤酒店房間信息。
Chapter 19: 在JSP里使用Velocity
許多WEB設計者和開發者對JSP已經非常熟悉,他們不想切換到Velocity或不想放棄JSP頁面,只想把JSP和Velocity混合在起編程。本節向你展現了如何在JSP頁面里使用Velocity標記庫將Velocity命令嵌入到JSP頁面中。
Chapter 20: DVSL和Velocity
Velocity類型聲明語言(DVSL)是為許多XSLT特性功能而設計的(?),它可以使用許多XSLT中相同的方法函數來轉換XML。本章提供了一些使用DVSL例子。
Appendix A: The Velocity規范
Velocity系統由許多類和接口組成。本附錄提供了一個完整的概覽。
Appendix B: Velocity 站點
本附錄提供了一個Velocity幫助站點列表。
posted on 2008-10-11 22:26 KINGWEE 閱讀(778) 評論(1) 編輯 收藏 所屬分類: Velocity