Tin's Blog

          You are coming a long way, baby~Thinking, feeling, memory...

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            128 隨筆 :: 0 文章 :: 221 評論 :: 0 Trackbacks
          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          公告

           
          Tin是一個熱愛收集最佳實踐的程序員。曾經(jīng)在小型Java團隊中擔任架構(gòu)師,后在新浪郵件部門領(lǐng)導RIA團隊進行開發(fā),目前是自由程序員,接受Java/ RIA/ RoR項目和咨詢。
          業(yè)余時間積極進行敏捷實踐和參與社區(qū)討論,對RoR和Django感興趣。在社區(qū)中還積極參與開源項目的文檔中文化工作。目前為InfoQ中文站做社區(qū)編輯。

          業(yè)余愛好:編程、硬件、Mac、美術(shù)、音樂(Rock)、電影、攝影、集圖、集郵、Quake3、旅行、美食

          常用鏈接

          留言簿(20)

          隨筆分類(63)

          隨筆檔案(58)

          文章分類

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          03 2006 檔案

               摘要: 為我們的項目寫的一個輕量的分頁API。目的在于將分頁與數(shù)據(jù)查詢的邏輯完全剝離。我以前看過robbin發(fā)的通過detachedCriteria實現(xiàn)的分頁那片貼子,里面把分頁和數(shù)據(jù)查詢結(jié)合在一起了。而我覺得分開更輕量,而且替換也比較容易。但是這個實現(xiàn)中有一個反模式,在邏輯中生成了代碼,無奈之選,為了簡便。其中字符生成可以自己擴展i18n實現(xiàn),應(yīng)該非常容易。
          分頁實現(xiàn)的接口:  閱讀全文
          posted @ 2006-03-31 12:30 Tin 閱讀(3491) | 評論 (6)  編輯

               摘要: 使用jakarta commons-upload。
          升級到2.2.2后發(fā)現(xiàn)上傳中文會亂碼。
          經(jīng)過跟蹤發(fā)現(xiàn)在com.opensymphony.webwork.dispatcher.DispatcherUtils的prepare(HttpServletRequest request, HttpServletResponse response)方法。
          2.2.1->2.2.2時這個方法發(fā)生了非常的的變化。
          2.2.1時:
          public void prepare(HttpServletRequest request, HttpServletResponse response) {
          if (encoding != null) {
          try {
          request.setCharacterEncoding(encoding);
          } catch (Exception e) {
          LO  閱讀全文
          posted @ 2006-03-30 21:40 Tin 閱讀(3972) | 評論 (11)  編輯

               摘要: 這是一篇很有趣的文檔,所以摘要一下,其實類似閱讀筆記,好像是3/25發(fā)布的:
          這時基于對以下人的采訪:
          JSF Jacob Hookom
          RIFE Geert Bevin
          Seam Gavin King
          Spring MVC Rob Harrop
          Spring Web Flow Rob Harrop and Keith Donald
          Stripes Tim Fennell
          Struts Action 1 Don Brown
          Tapestry Howard Lewis Ship
          Trails Chris Nelson
          WebWork Patrick Lightbody
          Wicket Eelco Hillenius
          里面問了每個框架的人6個相同的問題,很好的體現(xiàn)了各個Web框架的不同之處。如果配合Rod Johnson的J2EE Development Without EJB等書中對Web MVC的闡述會更加深刻的理解各種框架的思想和使用場合。我閱讀后很有收獲,所以將全文摘  閱讀全文
          posted @ 2006-03-30 16:28 Tin 閱讀(3202) | 評論 (0)  編輯

               摘要: 今天瀏覽WW的Wiki,結(jié)果無意發(fā)現(xiàn)ww:date標簽的用法,撓頭一想以前沒有見過呀,仔細一看原來是2006/3/21才加上的。
          會頭看看項目發(fā)現(xiàn)用的ww 2.2.1中沒有這個標簽,心想是不是發(fā)布新版本了?
          果不出所料!發(fā)現(xiàn)OPENSYMPHONY已經(jīng)發(fā)布2.2.2了。
          不過2.2.2是在Opensymphony下的最后一個版本了,以后的版本就會以Struts Action 2.0的形式發(fā)布了,而后者今年8月才發(fā)布,中間的日子估計只能靠nightly build了。
          說說變化,發(fā)現(xiàn)增加了RichTextEditor,經(jīng)考察就是我們熟悉的FCK Editor。發(fā)現(xiàn)還增加了nifty corners,這是一個不用images的圓角容器(css+js),估計用在了某個theme里面。還有J2SE5的支持也更加完善,現(xiàn)在已經(jīng)可以支持泛型Collection的反射(無需-conversion文件了),還支持annotation風格的validation聲名(如此像Stripes那樣的Web框架就沒什么可吹噓的了)。其它的變化請參考他們的ReleaseNotes。   閱讀全文
          posted @ 2006-03-28 20:00 Tin 閱讀(2572) | 評論 (3)  編輯

               摘要: BJUG的Cleverpig說起Stripes,正好前兩天在TSS上看到Simon Brown的Blog,對它有點感性認識,所以今天就看了一下,說些粗陋的感受:
          皮毛上的觀感:
          1、使用Annotation配置。將Action影射、返回View、默認Command注冊、是否驗證這些東西都通過Annotations搞,挺有意思。
          2、它也包裝了自己的Tag,Tag從感官上感覺很像WebWork的風格(估計Stripes也是過這個來實現(xiàn)bind,和Spring MVC相同吧,不過沒仔細看Stripes的bind方式)。但是它好像很方便與JSTL共用,所以我覺得它可能和Spring MVC類似,把變量拷貝到request里面,而不是WebWork那樣的VlueStack。
          3、它的Validation很Cool,用Annotation設(shè)定Validation相當舒適。
          4、它里面的event似乎挺有意思,也就是說一個Action可以對應(yīng)多個method,它管它叫Event。現(xiàn)在WebWokr和Spring MVC對這都有支持,但是Annotation帶  閱讀全文
          posted @ 2006-03-22 21:36 Tin 閱讀(1455) | 評論 (0)  編輯

               摘要: 遇到了一個奇怪的“瀏覽器兼容問題”……
          是這樣的,登陸頁面工作不正常,在firefox下總是沒有登陸,根本就沒有觸發(fā)webwork的filter dispatcher。
          打開我的三劍客:IE、Firefox、Opera測試,發(fā)現(xiàn)只有Firefox不行(Mozzila內(nèi)核的都不行)。
          然后花了3個多小時找原因,翻遍網(wǎng)絡(luò):weblogic、webwork、fireforx所有關(guān)鍵詞都搜索了,沒有收獲。
          然后開始sniffer,看報文。
          經(jīng)過多次分析,發(fā)現(xiàn)firefox根本就沒有post那個form!
          然后又是繼續(xù)的分析還是無果,一籌莫展……  閱讀全文
          posted @ 2006-03-14 21:12 Tin 閱讀(545) | 評論 (2)  編輯

               摘要: Webwork是標準的請求風格Web MVC,類似的有Struts、Spring MVC。這這種風格的MVC中都使用了前端控制器模式(企業(yè)架構(gòu)模式),也就是說一個URL會被解析然后派發(fā)到對應(yīng)的Action解析,而View調(diào)用的是Action處理后的Form對象或者Command對象(Rod的Without EJB)。
          上面引用了一些經(jīng)典的言論,而它們和“頁面控制器風格Action復用”有什么關(guān)系呢?
          嘿嘿,頁面控制器在這里指到了View的Page里面依然可以調(diào)用控制器(在Webwork中就是Action)。如果是以前肯定有人會說,如果用JSP我隨時可以在Page里面寫scriptlet,什么東西都能調(diào)用……
          可是,現(xiàn)在不一樣了。我們希望讓View單純一點,不要有雜亂無章的邏輯參與其中。
          可是,如果要是如上面所說那么Action在它的一個請求生命周期就要做所有的事……這樣一是使Action邏輯變得復雜,二是會變得難以復用。
          所以,說到這里就引出了這個主題:
          1、在頁面調(diào)用控制器
          2、復用控制器邏輯  閱讀全文
          posted @ 2006-03-10 14:45 Tin 閱讀(2592) | 評論 (4)  編輯

               摘要: 根據(jù)生日計算年齡可以通過Calendar實現(xiàn)。最簡單可以考慮get(Calendar.DAY_OF_YEAR)來簡單修正年齡,但是遇到生日在閏年的2月29之后,或者今年是閏年的2月29之后可能出現(xiàn)計算不準,誤差一天。所以還是老實判斷年月日好了。
          public static int getAge(Date birthDay) throws Exception {
          Calendar cal = Calendar.getInstance();

          if (cal.before(birthDay)) {
          throw new IllegalArgumentException(
          "The birthDay is before Now.It's unbelievable!");
          }

          int yearNow = cal.get(Calendar.YEAR);
          int monthNow =   閱讀全文
          posted @ 2006-03-10 10:00 Tin 閱讀(2615) | 評論 (0)  編輯

               摘要: Hibernate的透明持久化用起來非常舒服,有時甚至忘記了數(shù)據(jù)庫的存在。我身邊的朋友經(jīng)常會分不清save、saveOrUpdate、update的區(qū)別,lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且關(guān)于實體對象的生命周期也有很多概念不清,分不清transient、persistent、detached的區(qū)別,只是知道PO、VO這樣的通俗叫法。其實這些概念都很簡單,Hibernate的javadoc寫的都很清楚,只需看看就能明白。所以我花了些時間將Hibernate 3.1.2中session的javadoc部分翻譯了一下,旨在讓那些因為Hibernate的“透明”而忘記了它基本概念的人們停下來再看看這些概念  閱讀全文
          posted @ 2006-03-06 20:09 Tin 閱讀(10743) | 評論 (7)  編輯

          主站蜘蛛池模板: 赣州市| 贺兰县| 陇南市| 柳林县| 吴旗县| 宿迁市| 尼玛县| 铜山县| 巴南区| 肃北| 克什克腾旗| 平塘县| 尼勒克县| 福建省| 汉川市| 海丰县| 衡阳市| 徐闻县| 富阳市| 南靖县| 绩溪县| 高阳县| 伊通| 丹棱县| 当阳市| 城步| 乐昌市| 西乌珠穆沁旗| 防城港市| 彭泽县| 叶城县| 冕宁县| 灌南县| 保德县| 望谟县| 五原县| 浦城县| 丽水市| 内乡县| 黑水县| 丹江口市|