鐵手劍譜

          上善若水
          數據加載中……

          《Struts in Action》中文修訂版 第14章

          最近忙于修訂《Javaserver Faces in Action》,都沒有時間來修改這個文檔了。我發現校對文稿真的是一個非常辛苦的事情,比起寫來,要麻煩得多。何況我又不是一個細致的人。真是有些痛苦。今天抽點時間來繼續將這部分發點出來。

          很多人都問,Struts中用什么處理模型和數據。

          我以前總說,這和Struts有什么關系?
          從實際上來說,這的確和他沒什么關系,因為他是M中立的。你可以使用你自己喜歡的任何M實現。但是正因如此,其實也還是和她有關系的,那就是它本質上的MVC的分層設計。

          對Struts本身來說,作為最成功的一個MVC框架,實際上其最成功之處和精彩之處就是其中的C,即它是一個比較好的Front Controller 模式的實現。 很多地方,特別是其它利用了它的大型框架,都利用了他的這個優點。比如Oracle 的ADF。

          但是對小型應用來說,很多人在爭論,Action到底是M還是C。其實這并不重要,如果應用小型,你盡管可以在其中實現你的Biz Logic。這樣的話,它就是M。否則,稍大型一些的應用,最好還是作為一個C來使用,至少是C的一個helper。

          那么,具體的M怎么辦呢?常規的做法是委托給POJO或者EJB。但是基于分層的目的,這中間通常是需要一個緩沖,那就是Facade。SUN的 官方Facade實現原來推薦的是Session EJB,這感情好,如果你能搞定它,業務和實體也可以盡管使用EJB。如果你不能負擔EJB之痛,你可以使用POJO Facade來訪問你的POJO實現的邏輯。

          那么你的POJO生長在哪里?目前的Spring 等IoC容器正是一個好地方。實際上我想將Spring 成為是“框架之框架”。
          OK,那么數據層又如何?嘿嘿,實際上離Struts太遠啦,嚴格說起來他不想知道,也不用知道。你可以使用任何需要的持久實現,關鍵是作為DTO傳遞給C和V的結果,以及它們之間的轉換。

          本書中的ProcessBean是早期的一個POJO Facade,非常不錯。但是不知為和這個包一直在Apache Commons的沙坑中跳不出來。而且如今有些陳舊了。
          不過,本章其中的RSS和Lucene的講述倒是不錯。值得參考。

          這里下載。

          posted @ 2005-08-17 17:24 鐵手 閱讀(1698) | 評論 (6)編輯 收藏
          《Struts in Action》中文修訂版 第13章

          一直以為,國際化是個問題,本地化不是問題。
          但是,老是有人層出不窮地問中文的問題,真是生生被他們氣死。

          有時間的時候準備寫一篇文檔,徹徹底底的描述一下Java的文字處理問題。不過這里先說幾點最重要的:

          1 先要搞清除字符集(CharacterSet)和編碼方案(Encoding Schema)的意思;
          2 Java系統內置Unicode的問題處理方式,這點是最基本的前提,不要忘了;
          3 操作系統的代碼頁(CodePage)和字符集的關系;
          4 JSP中,注意page指令的charset不是字符集的意思,實際上是一中Java內置的字符集和編碼方案結合的編碼;
          5 不知道為什么總有人喜歡GB2312,記?。?FONT face=Arial>早過時了;
          6 解決編碼問題的方法就是盡量統一到Java系統的編碼上;
          7 只有國際化才能徹底解決中文化的問題。盡量不要強行轉碼,如果每一個字符都轉碼,效率如何不用說了吧?
          8 學會使用Local

          好了,先說這么多。

          下載這一章

          posted @ 2005-08-04 14:01 鐵手 閱讀(1578) | 評論 (7)編輯 收藏
          《Struts in Action》中文修訂版 第12章

          據Struts聲稱, Validator是從Struts0.5就開始使用了。從Struts1.1開始,Validator就成為Jarkarta Commons的一個組件。從而成為一個非常有用的通用工具。
          關于Commons Validator的地址,可以訪問:http://jakarta.apache.org/commons/validator/  。Struts發行包中帶有這個包,也可以單獨在此處進行下載。

          Validator應用的Struts官方指南參見:http://struts.apache.org/userGuide/dev_validator.html 其中也有幾個相關資源。

            使用中要注意的有幾點:

          • 注意DynaValidator的使用與常規ActionForm的校驗
          • 注意mapping中validate的配置
          • 注意action中validate方法與validator的關系

          Validator是一個同用框架,你可以使用在很多地方,包括最近流行的Spring 之中。

          本章下載。

          posted @ 2005-08-02 09:39 鐵手 閱讀(1292) | 評論 (2)編輯 收藏
          liferay Portal 3.5

          Liferay Portal 3.5發布了。仍然是Pro版和Enterprise版。
          比上一版本相比,增加了幾個顯著的特色是:

          • 支持JSF,Myface的Portlet
          • 對Portlet URL進行了優化
          • 動態熱部署的theme

          其實我最喜歡的是他能夠內建一個WorkFlow引擎,這樣就非常完美了。
          它的Pro版從3.0開始就該成Struts + Spring的架構,企業版中似乎也緊緊是使用了Session Bean作為Facede.那么在Pro版本中Spring 是如何使用的,倒要仔細研究。J2EE官方模式已近在提 POJO Facede的概念了(見J2EE Core Pattern, 2nd Ed.)。這里是否就是這種用法。因為,其后端業務部分幾乎不用修改的。

          這是其登錄后的主頁面:

          liferayhome.jpg

          我沒注意到,頁面上部右邊有個下拉列表框,支持多個工作區的選擇,這是否是上一個版本就有的功能。這個倒是非常不錯。
          它的CMS做得基礎還可以,但是做得不是很友好。需要比較麻煩的定義。如果支持分類學(Taxonomy
          就好了。一種以為,CMS不支持MetaDate和Taxnomy根本算不上content Management。這點,還不如PHP的Drupal做得好。最近SpringFramework網站的改版就是使用了Drupal框架。我覺得,就PHP陣營來說,Drupal比Mambo還要好些。不過后者似乎運作的很好,連國內也有很多FANS。

          他的HOT THEME的功能,發行包中帶了四個Theme,Liferay網站上一個很COOL的并沒有隨之發行,需要另外下載。而且原來的很多配色方案,也只有幾種了。

          另外就是,原來支持認為他的i18n中中文做得不好,有很多奇怪的翻譯,而據說他們的核心團隊還有中國人的。這次我選擇中文Local,居然沒反應,仍然是英文界面。不是是何原因?我使用的是Pro版本,不知Ent是否有此問題。

          這是一個theme:
          liferaytheme.jpg

          posted @ 2005-08-01 09:54 鐵手 閱讀(1795) | 評論 (2)編輯 收藏
          《Struts in Action》中文修訂版 第11章

          我一直認為tiles應該從Struts中獨立出來,成為一個單獨的項目。至少也應該放入Commons之中。不過,到Struts1.2版本中仍然沒有動靜。Shale對此也沒有明確的說法。

          兩大主要的布局工具,相比而言,我還是覺得Tiles要好用一些,而且方式優雅。對此,Struts分發包所帶的例子tiles-Document就是一個非常有用的學習例子。(很多人來消息說,想要通過例子學習Struts,那么朋友,你可曾研究過Struts的自帶例子?如果沒有,那就好好看一看吧。關于Struts中的示例程序,大家可以參考我前面所寫的“Struts秘籍”中的一篇。)。Tiles不僅是對布局,而且本身還自帶對菜單的支持。而且,著名的開源門戶項目 liferay  就是使用的Tiles作為布局工具,實現了portlet的表現,甚是了得。(另一個很好的portal ExoPlatform則是使用了JSF。)
          當然,Sitemesh也非常不錯,而且由于使用了裝飾器模式和Servlet Filter,靈活性更高。你可以用它做你愛做的事情,做你想做的事情。不過,似乎因為Sitemesh是 opensymphony 的項目,好像大家就以為它只能與WebWork配對使用,或者心存這種假設。其實不然,呵呵,這種假設不成立。它們兩個都是中立的。完全可以根據你的需要選擇使用。SiteMesh也完全可以用于Struts項目。
          還有一個項目是Struts-Layout,這個項目則主要偏重于細微的表現,比如樹型,面板之類的。較少用于總體布局。不過這些對JSF來說都是小Case了。

          IBM WSAD本身支持一種模板的布局處理方式,大家可以參考。它實際上是一套可以由IDE管理的代碼復制和重用機制。對整體布局和網站基礎,比如導航、菜單、面包屑、SiteMap等支持也非常不錯。大家也可以研究一下。

          開發工具來說,最好的Struts開發工具還是M7的Nitrox,對Tiles的支持也非常之棒。可惜不是免費的。也鮮見破解版本。另外就是Exadel Studio,也非常不錯,這方面好像是在學習M7。而且它前些時候剛推出免費版本。
          當然,各個商業IDE還是對其支持的不錯。

          這一章感覺并為把Tiles講解夠深。至于Tiles的高級應用,在Tiles-Document示例應用中,可以找到一個相關的鏈接。

          在這里下載
          這一章。

          posted @ 2005-07-29 10:30 鐵手 閱讀(1919) | 評論 (10)編輯 收藏
          僅列出標題
          共26頁: First 上一頁 10 11 12 13 14 15 16 17 18 下一頁 Last 
          主站蜘蛛池模板: 山阴县| 拜城县| 新晃| 铜山县| 马鞍山市| 南澳县| 静乐县| 武穴市| 碌曲县| 崇明县| 长宁区| 平度市| 宁陵县| 乐至县| 武冈市| 阳山县| 南部县| 南丰县| 衡水市| 兴安盟| 泾川县| 宾川县| 象山县| 临潭县| 辰溪县| 家居| 韶山市| 紫云| 长垣县| 饶阳县| 咸丰县| 嵊泗县| 田林县| 石嘴山市| 石门县| 和平县| 平武县| 剑川县| 武功县| 福海县| 勃利县|