<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Tin's Blog

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      128 隨筆 :: 0 文章 :: 221 評(píng)論 :: 0 Trackbacks

    #

         摘要: 這是擦拭法的本意。
    實(shí)際上BadClass()實(shí)例化以后Class里面就不包括T的信息了,對(duì)于Class而言T已經(jīng)被擦拭為Object。而真正的T參數(shù)被轉(zhuǎn)到使用T的方法(或者變量聲明或者其它使用T的地方)里面(如果沒有那就沒有存根,這里指ParameterizedTyp),所以無法反射到T的具體類別,也就無法得到T.class。
    而getGenericSuperclass()是Generic繼承的特例,對(duì)于這種情況子類會(huì)保存父類的Generic參數(shù)類型,返回一個(gè)ParameterizedType,這時(shí)可以獲取到父類的T.class了,這也正是子類確定應(yīng)該繼承什么T的方法。
    我們應(yīng)該利用這種特性,這對(duì)實(shí)現(xiàn)模版方法非常有用。  閱讀全文
    posted @ 2006-05-08 21:37 Tin 閱讀(2575) | 評(píng)論 (3)編輯 收藏

         摘要: 這兩天太忙了,沒時(shí)間寫B(tài)log,業(yè)余時(shí)間又扒了一次google的拖拽,對(duì)比了netvibes的,差不多,讓后就寫了個(gè)注釋,順便學(xué)習(xí)。
    google用了混淆,js里面的命名比較暈。我花了些時(shí)間把他們翻譯成容易看懂的命名,并且作了注釋,希望對(duì)大家有幫助。
    可以這里下載我的例子:
    http://m.tkk7.com/Files/iamtin/google_drag.rar
    //可拖拽Element的原形,用來將event綁定到各個(gè)鉤子,這部分市比較通用的,netvibes也是基本完全相同的實(shí)現(xiàn)
    //這部分推薦看dindin的這個(gè),也會(huì)幫助理解,http://www.jroller.com/page/dindin/?anchor=pro_javascript_12
    var Drag = {
    //對(duì)這個(gè)element的引用,一次只能拖拽一個(gè)Element
    obj:null,
    //element是被拖拽的對(duì)象的引用,elementHeader就是鼠標(biāo)可以拖拽  閱讀全文
    posted @ 2006-04-27 22:40 Tin 閱讀(15260) | 評(píng)論 (34)編輯 收藏

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

         摘要: 使用jakarta commons-upload。
    升級(jí)到2.2.2后發(fā)現(xiàn)上傳中文會(huì)亂碼。
    經(jīng)過跟蹤發(fā)現(xiàn)在com.opensymphony.webwork.dispatcher.DispatcherUtils的prepare(HttpServletRequest request, HttpServletResponse response)方法。
    2.2.1->2.2.2時(shí)這個(gè)方法發(fā)生了非常的的變化。
    2.2.1時(shí):
    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 閱讀(3971) | 評(píng)論 (11)編輯 收藏

         摘要: 這是一篇很有趣的文檔,所以摘要一下,其實(shí)類似閱讀筆記,好像是3/25發(fā)布的:
    這時(shí)基于對(duì)以下人的采訪:
    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
    里面問了每個(gè)框架的人6個(gè)相同的問題,很好的體現(xiàn)了各個(gè)Web框架的不同之處。如果配合Rod Johnson的J2EE Development Without EJB等書中對(duì)Web MVC的闡述會(huì)更加深刻的理解各種框架的思想和使用場(chǎng)合。我閱讀后很有收獲,所以將全文摘  閱讀全文
    posted @ 2006-03-30 16:28 Tin 閱讀(3201) | 評(píng)論 (0)編輯 收藏

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

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

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

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

         摘要: 根據(jù)生日計(jì)算年齡可以通過Calendar實(shí)現(xiàn)。最簡(jiǎn)單可以考慮get(Calendar.DAY_OF_YEAR)來簡(jiǎn)單修正年齡,但是遇到生日在閏年的2月29之后,或者今年是閏年的2月29之后可能出現(xiàn)計(jì)算不準(zhǔn),誤差一天。所以還是老實(shí)判斷年月日好了。
    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 閱讀(2614) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共6頁: 上一頁 1 2 3 4 5 6 下一頁 
    主站蜘蛛池模板: 免费观看黄网站在线播放| a毛片在线还看免费网站| 青青视频观看免费99| 久久久久亚洲AV片无码下载蜜桃| 亚洲免费在线观看| 久久亚洲精品无码播放| 中文字幕免费在线看| 亚洲国产精品特色大片观看完整版 | 亚洲av日韩av无码| 免费人妻无码不卡中文字幕系 | 亚洲第一福利视频| 2020因为爱你带字幕免费观看全集 | 三年在线观看免费观看完整版中文| 亚洲一区二区精品视频| 一区在线免费观看| 日本亚洲视频在线 | 91国内免费在线视频| 亚洲av无码一区二区乱子伦as| 91福利免费视频| 亚洲无限乱码一二三四区| 成年女人男人免费视频播放| 亚洲成AV人片高潮喷水| 久久久久亚洲精品中文字幕| 亚洲免费观看视频| 亚洲不卡在线观看| 免费不卡中文字幕在线| 久久国产一片免费观看| 亚洲第一网站免费视频| 日韩高清在线免费观看| 久久99久久成人免费播放| 蜜芽亚洲av无码精品色午夜| 午夜视频在线观看免费完整版| 一区二区三区免费在线视频 | 亚洲综合小说另类图片动图| 国产免费资源高清小视频在线观看| 一级大黄美女免费播放| 亚洲精品在线网站| 亚洲av麻豆aⅴ无码电影| 性色午夜视频免费男人的天堂| 亚洲精品中文字幕无码A片老| 亚洲人成网亚洲欧洲无码久久|