由於Struts框架在全球的廣泛使用學習它的人也非常之多但是大部分人花費了太多不必要的時間和精力在一些不太重要的地方導致學習代價高昂成效也不是很好我這裡根據多年培訓經驗的總結精心設計了一套學習Struts框架的曲線讓大伙學習Struts框架既快且准節省大伙寶貴的時間一定會對各位學習者大有幫助
大家知道Struts是Apache 基金會Jakarta 項目組的一個開源項目它采用MVC設計模式是一個基於Sun JEE平台的WEB表現層框架這裡有幾個概念值得大家關注開源MVCJEEWEB表現層框架我來逐一解釋
開源不用多說源代碼可以讓你一行一行仔細分析深入了解其內部實現機制
MVC它強制性的使應用程序的輸入處理和輸出分開使用MVC應用程序被分成三個核心部件模型視圖控制器它們各自處理自己的任務MVC享有全球第一設計模式的美譽是當前很流行的一種設計理念和思想你要學好Struts必要要讓這種思想深入骨髓(我在另一篇文章中對MVC進行過闡述關於MVC的流程及例子請參閱拙作)
JEEJEE是使用Java技術開發企業級應用的一種事實上的工業標准JEE將組成一個完整企業級應用的不同部分納入不同的容器(Container)每個容器中都包含若干組件(這些組件是需要部署在相應容器中的)同時各種組件都能使用各種JEE Service/API其中最常用的容器就是WEB容器(就是我們常說的WEB服務器)裡面最核心的兩個組件就是JSP和SERVLET而Struts就是基於這兩種技術依賴於WEB容器
WEB表現層我們常說的JEE四層體系架構WEB表現層業務邏輯層持久層數據庫層這是一種邏輯劃分WEB表現層的特點就是依靠WEB服務器直接跟客戶端(一般是WEB浏覽器)打交道Struts處於WEB表現層主要就是接受並處理用戶請求並將處理結果響應給用戶
框架通俗地講框架就是一個半成品它做了一些通用的東西讓你去配置和擴展框架的強大之處不是說它能讓你做什麼而是它不能讓你做什麼!它使混亂的東西變得結構化我們來打個比方框架就像是一間有很多屋梁的房子當你需要擴建房子的時候譬如增加新的房間窗戶和過道或者在臥室增加一個壁爐由於屋梁的限制你並沒有什麼其他的選擇雖然較少的屋梁會讓你有更多的選擇但是當台風來襲或者發生地震的時候你讓家人住在這樣一間只有屋頂的房子裡恐怕不會覺得安全吧總之框架是在結構和創造力之間的一個精確的天平
好了這裡假設大家已經理解了上述概念並會用JSP/SERVLET做一些普通的WEB應用程序現在就讓我們來看看如何學習Struts框架吧這裡我以Struts 版本為例(Struts 的實現跟以前的版本有很大不同我以後會講到)讓我們出發吧!
首先你要照書本或者網上的例子跑一個最簡單的Struts應用就是在客戶端顯示一個HELLOWORLD的那種這叫先睹為快在這裡你開始接觸到做Struts應用需要的東西Struts的JAR包核心控制器ActionServlet在webxml上的配置針對具體用戶請求URL的Action的編寫以及Struts應用的核心配置文件Strutsconfigxml做完後停下來思考一下
然後你開始跑一個稍微大點的用戶登陸的應用成功就跳轉到我們的主頁面失敗就繼續回到登陸頁面我們引入ActionForm組件和對後台數據庫的操作這個時候MVC發揮作用了ActionServlet和自己編寫的Action分別充當前後端控制器組件DAO/DTO充當了模型組件JSP充當視圖組件Strutsconfigxml也變的飽滿起來上面開始多了些配置datasourcesformbeansactionmappings做完後到網上找一些好的參考資料或者利用自己經典的Struts的案頭書(最好是有圖解)開始認真琢磨Struts的運行原理和執行流程特別要好生體會ActionForm組件的作用和Strutsconfigxml這個核心配置文件每一處用到的配置這個時候你應該開始有些領悟我們自己寫的Action還有ActionForm類一定要繼承框架已有的Action和ActionForm寫完了之後還必須得將它們配置到Strutsconfigxml中去
接著你已經對Struts框架有了大致的了解可能開始對Struts的其他主題感興趣了OK現在擴充你的登陸應用吧先加上驗證不然你的系統會不堪一擊驗證分為客戶端驗證和服務器端驗證服務器端的驗證我們可以在ActionForm裡面的validate()方法裡做也可以在隨後的Action類的execute()方法裡做甚至可以使用驗證框架這裡大家要把重點方在驗證框架的學習上做好後再加上資源國際化IN針對不同區域不同語言的客戶提供不同語言版本的頁面顯示我們開始寫資源屬性文件開始在Strutsconfigxml裡面配置開始使用Struts自帶的標簽等這個裡面涉及的知識點都很多需要大家耐心細致地學習大家在跑這個應用的時候會發現各種各樣的異常和問題不要害怕這些錯誤都是我們的好朋友我們要把它們通通都記錄下來並堅韌地排除掉它們這裡要記住盡量避免重復犯錯不要在同一個地方跌倒兩次
做完後認真總結和思考
再接著你把上面的都基本消化了但是總隱隱覺得不夠系統和完整你就開始做幾個CRUD的應用完成普通的增刪查改的工作在做這些應用的過程中你要認真總結核心配置文件Strutsconfigxml裡面的個重要節點元素的配置以及它們的順序每個節點的重要屬性特別是裡的子節點的屬性是重中之重一定要好好理解並靈活運用
你也要開始系統地學習Struts裡面的標簽但這個時候千萬不要追求大而全只學習幾種常用的標簽就可以了重點放在htmlbean還有logic標簽上這時候還有些小知識點你也許要用到譬如文件上傳控件防止信息重復提交 自定義標簽cookie的使用等等這就是個相對比較耗時間和精力的階段了你要做的就是不斷地參考不斷地思考不斷地總結最好還能和志同道合的人不斷地爭論
慢慢地你對Struts框架有了一個全局性的宏觀把握用它來完成一些小模塊的開發已經沒有太大問題你已經開始志得意滿了Struts不過如此嘛!如果你到了這一步我首先要恭喜你你接近成功了但我也要小心地提醒你Struts裡面還有很多東西值得挖掘!你不妨多問一下自己軟件有一個人開發的嗎?頁面我使用了良好的布局嗎?頁面導航都是那麼簡單嗎?我的所有做法就不能有更簡單的實現了嗎?我對學習Struts框架的好處了如指掌了嗎?好的如果你想通了帶著這些問題你就會重新披掛上陣開始學習Struts的多模塊開發開始學習tiles框架開始認真研讀Struts的源代碼開始學習一些更簡單有效的Action組件類和ActionForm組件類……真應了一句古語吾生也有涯知也無涯!最後呢大家可能會悟出一些道理譬如Struts框架基本的好處就是用配置代替編碼它是一個半成品是讓我們擴展和配置的等等
上面我粗略地勾勒了一下學習Struts的曲線歸納一下學習框架需要循序漸進實例驅動思考總結實際上我在做培訓的過程中發現如果我們在學習Struts之前自己動手寫過一個簡易的MVC框架學習Struts將會非常輕松大概只需要五天的時間而且可以學的非常好大家不要認為框架就是很龐大很復雜的怪獸自己絕對無法寫出來其實無非就是將我們所理解的樸素思想用代碼實現出來罷了好了時間關系今天就寫到這裡祝願大家學的開心!
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28602.html