初識Wicket!!

 Wicket, 是老闆推薦我們學的一個開發框架,像什麼SSH之類的東東,當然也是開源的,是Apache社區下產品,業內有名言:凡Apache出品,必爲精品!

 

這樣一來,學習wicket更有必要了。其實對於框架之類的東東,知之勝少,只知道一些編程語言和編程IDE,然後用它們去完成一些老闆交代的任務,僅此而已。

 

老規矩,先去官網下開發包,然後在網上搜一堆雜七雜八的東西,才發現,資料真的好少,而中文資料更是少得可憐了,當中最有份量的一點中文資料就是——《Wicket編程指南》,作者王磊,與我大學鐵哥們同名,頓時來了興趣了。

以下就是從該書中摘抄的幾段文字,從中可以看出Wicket的一些背景。

“Wicket 是什麼? 簡單點說,它是一個基於Java 的Web 開發框架,與Struts,WebWork,Tapestry相類似。其特點在於對Html 和代碼進行了有效的分離(有利於程序員和美工的合作),基於規則的配置 ( 減少了XML等配置文件的使用) ,學習曲線較低(開發方式與C/ S相似),更加易於調試(錯誤類型比較少,而且容易定位)。如果你對微軟並不反感,可以把它看作Java 平臺上的ASP.NET。”

“Wicket 的作者中有幾個是原Sun公司Swing小組的開發人員(現在可能大部分已經不是了 ,我認爲儘管 Swing 從界面來看,實在不算一個很成功的作品,但其設計卻是非常的優秀),因此 Wicket 的框架中帶有濃厚的 C/S 色彩。而他們的開發計劃中,還包括了Swing , Flash 平臺的支持,也就是說使用 Wicket 不僅可以可以輸出 Html ,而且可以支持Swing 和 Flash ,不過和朋友經過討論後,覺得這個計劃看起來有一點不切實際,畢竟Html ,Swing , Flash 之間的差別還是很大,恐怕想要無縫移植,還是有點難度的。單是一個JavaScript ,恐怕就夠頭痛了。”

“Wicket 帶有強烈C/S 結構的 UI 色彩,這一點有助於美工和程序人員的分工,它與Delphi 的開發方式非常類似( Delphi 使用.frm 文件保存UI 控件的定義,便於可視化設計,而用.pas 文件存儲代碼,從而對控件進行操作)Wicket 則是使用Html描述UI ,並將具有特殊標記的 Html 元素定義爲UI 控件,在Java文件中則直接使用代碼操作這些UI 控件,控制其輸出及行爲,樣式等。這一點和Tapestry ,以及.NET平臺上的ASP.NET 極爲相似,也怪不得與Tapestry 的作者爭論了這麼久,畢竟兩者的用戶羣有很多的重複。其實從結構上看來,無論是Tapestry,ASP.Net ,Wicket 估計都借鑑了 Applet 平臺上的WebObjects ,還有Delphi 。(不要忘了,Delphi 的創建者Anders Hejlsberg就是. NET 框架的架構師,所以C# 和Asp.NET怎麼看都帶着Delphi 的影子。)”

“Wicket 吸收了Tapestry 的一部分內容,但我最喜歡的就是,它是基於規則的,而並非XML 配置的方式,這不僅有利於程序員學習,對系統的維護及開發規範都很有效,畢竟XML 的編寫並不見得就比寫一段程序來得更容易。(這裏插一句題外話,我覺得XML 文件用來表示數據和資源,而不是行爲,所以對於XML 我只用來存放多語言資源或者用來做數據交換。象Spring 這種大量使用XML方式,我並不欣賞,Spring 也意識到了這一點,在2.0 版本中努力的簡化 Xml 的配置,但是並不盡如人意)。如果使用簡單的規則來配置或者管理一個系統,用戶就會很容易的查找到自己需要的內容。而通過配置文件,不管這樣的一個配置文件的結構如何好,也需要在其中查找自己需要的內容,開發效率肯定要低一些。”

 

下面進行具體配置,主要目標完成國際慣例:Hello World!的完成^_^!!

根據書中介紹,結合一般開發經驗,主要進行以下幾個步驟進行配置:

1、JDK的配置

這個不用多講,如果要進行JAVA開發,這個都沒有進行配置的話,就是醬油帝~~~都稱不上!

2、Tomcat安裝與配置

同樣出自Apache旗下,開源Web Server中也算擁有一大批忠實fans,雖然剛纔纔在CSDN上面看到一篇帖子:報道Tomcat又爆安全漏洞,但對於學習,一般小規模Web開發,完全應該好好研究研究Tomcat呀!這裏插點廣告:本來老闆讓咱給研一的新童鞋們講一點開發知識,我準備講Web Server的,其中Tomcat肯定是重頭戲的,結果被老闆給拒了,因爲我講的和研三要講的衝突了。還想借此機會好好再研究研究一下Tomcat的,現在看來又不知是否有這個心思了。。。Tomcat的安裝與配置網上也是一大籮的資料,自搜之!

3、配置Wicket

到官網下載最新版本:apache-wicket-1.4.16,解壓後,裏面的lib路徑下有一個war包:wicket-examples-1.4.16.war,將其直接拷貝到Tomcat的WebApp下面,啓動Tomcat,會自動部署該war包,通過訪問Tomcat裏面的應用就可看到wicket的實例了:如圖

從中可以直接看到Wicket實例的效果,和源代碼,不過不好看wicket的部署(.xml文件的配置情況),不過前面不是有前輩說過了嗎?Wicket的一大進步就是,部署配置文件減少了許多。僅需對一個.xml文件進行少裏的聲明映射即可——這當然是後話。

 

現在可以進行Wicket的開發之旅了,打開Eclipse,新建一動態Web工程,然後再向裏面添加Wicket支持,主要是wicket裏面的lib下的包拷貝到WEB-INF下面的lib裏面,然後在Bulit Path裏面引入剛纔加進去的.jar包,這裏其實只要選中:Web App Libraries,那麼添加在剛纔工程裏面的lib,編譯器就會自己添加進行,不用另外引入。

 

開發Wicket步驟(僅供參考):

1、編寫.html文件

就是你想你的Wicket編出來的程序,通過Html能給瀏覽者什麼樣的感受,就怎麼編。編的同時,注意:以前我們編靜態Html,涉及交互的時候,都只是給Html控件一個id="xxx",此處,把id聲明成:wicket:id="xxx",僅此而已,其它毫無變化——對畫Html來說(對我來說,網頁都是用Html畫出來)。

2、編寫.java文件

就是寫後臺的邏輯處理程序。就是獲取到前臺html控制得來的數據後,怎麼樣進行處理,返回什麼給瀏覽器,或操作數據庫等等。都是後臺的java文件來控制的。從這裏可以看出,wicket淘汰了jsp文件,這也可能是wicket的一個亮點吧,把雜交的jsp給終結了,但是凡事有利有弊,wicket的邏輯處理都放到後臺java來處理,使得服務器端壓力很大。不過現在的wicket支持Ajax,稍微又緩解了一下這個狀況。另外wicket對javascript也是支持的,嚴格的說來,javascript與wicket似乎沒有什麼關係,因爲javascript只是嵌入到html文件中的腳本程序,它的執行與否,只取決於Html的編程如何!——這是我纔想到的。

值得注意一點是:.java文件與.html文件要同名,且放在同一路徑下。這是有教訓的。切記!!

3、編寫Application程序

其實他像一個鉤子樣的servlet程序,因爲它的內容幾乎不變:

package edu.wicket.demo.user;    //打的包

import org.apache.wicket.protocol.http.WebApplication;    //引用的包

public class “ApplicationName” extends WebApplication
{
         public Class<java類文件名(無後後綴)> getHomePage()
         {
                     return java類文件名.class;
         }
}

4、配置.xml文件

其實該.xml只與前面的servlet構子程序有關,服務通過這個啓動servlet程序,並通過一種同名機制運行html文件。xml的配置同樣是一樣的。

   <!-- 下面是關於HelloWorld的配置 --> 

  <servlet>
             <servlet-name>HelloWorldApplication</servlet-name>
             <servlet-class>org.apache.wicket.protocol.http.WicketServlet</servlet-class>
  <init-param>
             <param-name>applicationClassName</param-name>
             <param-value>edu.wicket.demo.hello.HelloWorldApplication</param-value>
   </init-param>
  </servlet>
             <servlet-mapping>
             <servlet-name>HelloWorldApplication</servlet-name>
             <url-pattern>/HelloWorld/*</url-pattern>   <!--這個是瀏覽器訪問該Wicket程序的路徑,調試的時候-->

                                                                                   <!--最後就只留個通配符*,便於訪問-->
  </servlet-mapping> 

<!--接下來,可以在這後面繼續添加wicket另外和工程,方法同上,只是對應的要改名字,且瀏覽路徑不要重了-->

  <servlet-mapping> 

     。。。   。。。

     。。。   。。。

 </servlet-mapping> 

 

最後,再說一下Wicket在Eclipse下面的開發利器:WicketBench吧,呵呵,前面沒有介紹,因爲那是最笨的辦法,通過這個可以瞭解到更深層的東西,而熟悉之後,就可以在Eclipse裏面安裝WicketBench的插件,就可以進行更有效率的Wicket開發了。

安裝插件步驟,跟我的另一篇帖子講的一樣,只是記住WicketBench的地址就行了,另外選網速給力的時候在線安裝,會比較好一點哈。

WicketBench:http://www.laughingpanda.org/svn/wicket-bench/trunk/wicket-bench-site

 

Ok,寫了這麼多,貌似不是初相識啊!的確呀,已經接觸有幾周了,一直想寫,沒有找到時間寫,接觸過後中間還有一段時間備考,所以。。。呵呵!!不過長路漫漫,Wicket到底能走多遠,還有待我等&爾等努力將其發揚光大呀!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章