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

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

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

    風(fēng)人園

    弱水三千,只取一瓢,便能解渴;佛法無(wú)邊,奉行一法,便能得益。
    隨筆 - 99, 文章 - 181, 評(píng)論 - 56, 引用 - 0
    數(shù)據(jù)加載中……

    ECP--之信息提示

            一般,系統(tǒng)中把提示信息保存在request中傳遞會(huì)頁(yè)面,但是有些情況是redirect的,這樣就導(dǎo)致了request失效。在ROR中,有一個(gè)scope是夸兩個(gè)request的,不知道那個(gè)是怎么實(shí)現(xiàn)的。
            現(xiàn)在用session來(lái)代替這個(gè)東西,只是顯示完成之后,就立刻清除這個(gè)數(shù)據(jù)。感覺(jué)比較挫,只能湊合著用了。
            每次新開(kāi)發(fā)一個(gè)系統(tǒng),如果不用現(xiàn)成的東西來(lái)做,都要搞很多很多東西,什么東西好像都要自己來(lái),特別是頁(yè)面上的東西,感覺(jué)挺煩的。寫(xiě)寫(xiě)js,改改css,調(diào)調(diào)table/div。感覺(jué)挺無(wú)聊的。
            總而言之,這樣子都是因?yàn)檫@家公司的it部門(mén)太弱了,幾乎沒(méi)有一點(diǎn)技術(shù)積累,這么多年了,什么東西都沒(méi)有留下,就留下了一堆垃圾,讓我改的挺郁悶的。現(xiàn)在正在用自己的東西重新。有些東西又沒(méi)法改,一些現(xiàn)成的組件也不一定能用,不能用的只能自己重新寫(xiě)一遍,來(lái)實(shí)現(xiàn)這個(gè)功能。

            作為一個(gè)技術(shù)部門(mén),結(jié)果什么技術(shù)都沒(méi)有,感覺(jué)挺悲哀的,特別是一個(gè)技術(shù)部門(mén)的老大,結(jié)果是個(gè)門(mén)外漢,被手下人看不起,這個(gè)也挺慘的,作老大做成這樣,連死的心都有了,悲劇啊。

            作為一個(gè)技術(shù)部門(mén)的主管,可以不做技術(shù),但是不能不懂技術(shù)。這樣才能服眾。

    posted @ 2009-08-31 14:37 風(fēng)人園 閱讀(161) | 評(píng)論 (0)編輯 收藏

    ECP--之彈出窗口解決方案(json傳遞)

            在應(yīng)用中,彈出式窗口選擇數(shù)據(jù),這種解決方案是很普遍的。
            彈出窗口,有兩種方式,一種是:showModalDialog,使用模式窗口,這種方式的好處有兩個(gè)地方,一、可以直接返回?cái)?shù)據(jù),二、在最前面顯示,避免用戶(hù)誤操作,窗口被遮蔽。
            但是這種方式個(gè)人感覺(jué)比較致命的地方就是因?yàn)檫@個(gè)是一個(gè)對(duì)話框,在form提交的時(shí)候只能新開(kāi)一個(gè)頁(yè)面(可能我沒(méi)有發(fā)現(xiàn)其他的方式)。但是也有其他的方式,如加iframe,但是這樣感覺(jué)頁(yè)面太煩了,需要兩個(gè)頁(yè)面才能實(shí)現(xiàn),比較麻煩。

            第二種:window.open,這種方式也有一個(gè)問(wèn)題,就是會(huì)被當(dāng)做廣告攔截掉,還算不是很致命。
    我的方案就是這個(gè),下面上代碼。
    傳遞格式通過(guò)json,這樣我可以自己定義需要回填那些域,返回值這邊就是竟可能的完整。


    /*
    彈出窗口
    endtarget: string 目標(biāo)窗口
    無(wú)返回
    */

    function fopenWindow(endtarget){
        window.open( endtarget, 
    """left=0, top=0, width=800px, height=600px, scrollbars=1, resizable=1, menubar=0, location=0, status=0, toolbar=0, " );
    }


    /*
    window.open的回調(diào)函數(shù)
    根據(jù)傳入的json格式,賦值相應(yīng)的域值

    cmp:string 域id
    retval :json 所選行的數(shù)據(jù)
    無(wú)返回
    */

    function fopenCallback(cmp, retval){
        
        
    //alert("call back start." + cmp);
        var obj = eval('(' + cmp + ')');
        
        
    for(var e in obj ){
            
    //alert(obj[e]);
            document.getElementById(obj[e]).value = retval[obj[e]]
        }

    }


    window.openCallback 
    = fopenCallback;

    /* 
    獲取url上的參數(shù)
    返回:key value 對(duì)
    */

    function GetUrlParms()    
    {
        
    var args=new Object();   
        
    var query=location.search.substring(1);//獲取查詢(xún)串   
        var pairs=query.split("&");//在逗號(hào)處斷開(kāi)   
        for(var i=0;i<pairs.length;i++)   
        
    {   
            
    var pos=pairs[i].indexOf('=');//查找name=value   
            if(pos==-1)   continue;//如果沒(méi)有找到就跳過(guò)   
            var argname=pairs[i].substring(0,pos);//提取name   
            var value=pairs[i].substring(pos+1);//提取value   
            args[argname]=unescape(value);//存為屬性   
        }

        
    return args;
    }
                

    /*
    行雙擊方法,用戶(hù)選擇行數(shù)據(jù)。
    通過(guò)回調(diào)函數(shù),完成賦值,最后關(guān)閉窗口
    rtnval: string 行數(shù)據(jù)
    */

    function Dialog_onDblClick(rtnval)
    {
        
    //var rtnval = {prodId: prodId, prodName: prodName};
         
        
    var args = new Object();
        args 
    = GetUrlParms();
        
    var cmp = args['cmp']
        
        window.opener.openCallback(cmp, rtnval); 
        window.close();
    }


    主頁(yè)面 域id通過(guò)json字符串跟url傳遞后彈出頁(yè)面
    function popProductDialog(){
        var endtarget = "<%=path%>/bas/product.do?method=dialog";
        var cmp = "{a: 'prodId', b: 'prodName'}";
           //fshowModalDialog(endtarget, cmp);
          
           fopenWindow(endtarget+ "&cmp=" + cmp);
          
       }

    彈出框
    function Document_onDblClick(value1,value2)
                
    {
                    
    var rtnval = {clientId:value1, clientName:value2};    
                        Dialog_onDblClick(rtnval);

                }
    彈出頁(yè)面解析獲得域id,并通過(guò)循環(huán)域id從返回值中獲取數(shù)據(jù),并進(jìn)行賦值。

    這里唯一需要變的就是,彈出頁(yè)面的返回值,可能因?yàn)樾枨蟮脑黾樱枰祷馗嗟臄?shù)據(jù),或者就一次性將所有數(shù)據(jù)都作為json數(shù)據(jù)返回。

    這樣客戶(hù)在調(diào)用的時(shí)候,只要域id不超出返回字段的范圍,就可以正確使用了。

    posted @ 2009-08-31 10:39 風(fēng)人園 閱讀(582) | 評(píng)論 (0)編輯 收藏

    ibatis3中感覺(jué)比2不方便的地方


    1、動(dòng)態(tài)sql里面 原來(lái)的dynamic,現(xiàn)在沒(méi)有了,只能用is代替。但是if里面的判斷 沒(méi)有isEmpty這種方便的標(biāo)簽,需要判斷需要同時(shí)判斷 null 和 ""。這個(gè)比較麻煩,希望能在正式版本中加上。

    2、annotion方式的評(píng)價(jià),個(gè)人感覺(jué)沒(méi)有什么意義。從我來(lái)講,用iBATIS的主要原因是因?yàn)橐幚肀容^復(fù)雜的sql,所以通常sql都會(huì)很長(zhǎng),就是因?yàn)椴幌胪ㄟ^(guò)字符串的方式寫(xiě)在代碼里,要是寫(xiě)在代碼里,直接用hibernate的原生sql就好了,何必還要用iBATIS呢。sql寫(xiě)在xml里的好處是顯而易見(jiàn)的,可以直接將調(diào)試好的sql從sql的編輯器中復(fù)制過(guò)來(lái),這樣可以省掉很多麻煩的事情,放在sql里面很長(zhǎng),又沒(méi)有辦法將格式弄好,要是換行什么的就更麻煩。

    一個(gè)比較有用好的改進(jìn)就是namespace了,這個(gè)功能以前在2.X想用一直沒(méi)有用成。有了這個(gè),很多通用的地方可以省略。

    posted @ 2009-08-26 16:30 風(fēng)人園 閱讀(409) | 評(píng)論 (0)編輯 收藏

    ibatis3及代碼生成工具試用

            ibatis3現(xiàn)在還是beta版,但是已經(jīng)可以很好的使用了。
            主要增強(qiáng)的方面有namespace這個(gè)東西,以前2的時(shí)候一直以為可以用的,結(jié)果沒(méi)有效果,害我還郁悶了半天,這樣以后就不會(huì)再有命名沖突了。
            然后就是annotion的支持,這樣就可以不適用xml文件來(lái)保存sql了,但是感覺(jué)還是寫(xiě)在xml里面比較舒服,特別是比較長(zhǎng)的sql,個(gè)人感覺(jué)。
            第三個(gè)就是動(dòng)態(tài)sql的增強(qiáng),增加很多有用的標(biāo)簽。可以讓動(dòng)態(tài)sql使用更加方便。
            在看完之后暫時(shí)感覺(jué)有那么幾個(gè)比較好的改變,等正式版出來(lái)之后可能還有更多改進(jìn)。

            接著講下abator這個(gè)代碼生成工具,感覺(jué)還可以,生成的sqlmap配置文件還可以用下,其他的就算了,還是自己手寫(xiě)吧。

            最后提到一下ibatis-3-migrations,這個(gè)東西暫時(shí)還沒(méi)有看明白,好像是數(shù)據(jù)庫(kù)schema的一個(gè)管理工具。正在啃g(shù)uide,看看到底有什么好處,上次看有個(gè)人的文章說(shuō),就是因?yàn)闆](méi)有這個(gè)東西才沒(méi)有用ibatis,所以這個(gè)東東應(yīng)該很強(qiáng)大,我要看下。

    posted @ 2009-08-21 10:36 風(fēng)人園 閱讀(850) | 評(píng)論 (1)編輯 收藏

    ECP--舊系統(tǒng)維護(hù)之感慨

            這幾天再改老的EC系統(tǒng),天啊,都快受不了了。我自認(rèn)為我寫(xiě)的已經(jīng)算丑的了,沒(méi)想到有寫(xiě)的丑到這個(gè)程度的也是一絕啊,而且這個(gè)還是一家國(guó)內(nèi)還有點(diǎn)名氣的軟件公司的產(chǎn)品(中科軟sinosoft)。爺爺,當(dāng)初是誰(shuí)寫(xiě)的,幫我問(wèn)候一下他家先人。害我現(xiàn)在這么慘,看那個(gè)代碼,看了就想吐。
            只要我還在這家公司做著,一定把這個(gè)系統(tǒng)給換了,什么玩意啊。軟件公司就知道賺錢(qián),做出來(lái)的什么狗屁玩意。
            在這里發(fā)發(fā)牢騷,實(shí)在是有點(diǎn)受不了了,改這些破東西,累啊。shit

    posted @ 2009-08-20 15:01 風(fēng)人園 閱讀(174) | 評(píng)論 (0)編輯 收藏

    SpringSecurity見(jiàn)解

            對(duì)于入門(mén)來(lái)說(shuō),這個(gè)東西還是挺簡(jiǎn)單的,但是入門(mén)之后,這個(gè)事情還是挺復(fù)雜的。這里主要是看這個(gè)教程自己研究的http://www.family168.com/oa/springsecurity/html/index.html 
            對(duì)于那個(gè)helloworld,確實(shí)是挺好的,讓人有了一個(gè)初步的認(rèn)識(shí)。之后就是怎么把xml中的東西搬到數(shù)據(jù)庫(kù)中的問(wèn)題。這個(gè)過(guò)程中還是有很多小問(wèn)題的,經(jīng)常出現(xiàn)不能訪問(wèn),訪問(wèn)錯(cuò)誤,配置不生效等等問(wèn)題。畢業(yè)也是第一次弄這個(gè)東西。也是在springside中看到這個(gè)東西,而權(quán)限控制模塊也沒(méi)有什么應(yīng)用,所以就決定用這個(gè)試一下。
            試了一下例子,感覺(jué)確實(shí)不錯(cuò) ,有很多功能都可以迎刃而解,剩下的問(wèn)題就是怎么把那些小問(wèn)題都搞清楚。
           現(xiàn)在一個(gè)比較麻煩的問(wèn)題 就是資源的動(dòng)態(tài)管理。新增配置只能在系統(tǒng)啟動(dòng)的時(shí)候才生效。網(wǎng)上說(shuō)要把數(shù)據(jù)refresh()一下,但是不知道在哪里refresh(),不知道到底要刷新那個(gè)數(shù)據(jù)。還得研究一下。
            問(wèn)題二、一個(gè)路徑,如果沒(méi)有加到資源的話,是不是應(yīng)該叫匿名資源,這個(gè)資源是不是匿名用戶(hù)也可以訪問(wèn)?

    posted @ 2009-08-18 10:53 風(fēng)人園 閱讀(253) | 評(píng)論 (0)編輯 收藏

    ECP--安全控制

            基礎(chǔ)數(shù)據(jù)的操作暫告一個(gè)段落,基本上差不多,后面可能還有一些小問(wèn)題,要修修補(bǔ)補(bǔ),暫時(shí)不弄了,呵呵,典型的喜新厭舊型,弄多了就有點(diǎn)煩,下面開(kāi)始玩權(quán)限。
            權(quán)限管理使用spring security 來(lái)進(jìn)行,以前稍微看過(guò),只是感覺(jué)挺復(fù)雜的,也沒(méi)有怎么仔細(xì)研究,這次一定要用,就好好研究下。這樣系統(tǒng)安全性才能有保障。
            畢竟是第一次使用,使用的過(guò)程中還是有很多的問(wèn)題的。下面就是一些小問(wèn)題,需要注意一下的。
     

    1、 登錄action/spring_security_login

    2、 登出actionj_spring_security_logout (這兩個(gè)actionspringSecurity自帶的,直接用就可以了)

    3、 Filter的配置,在項(xiàng)目中,跟struts2一起使用,filter的前后順序有關(guān)系。Spring secutiry要放在struts2的前面,否則系統(tǒng)找不到securityaction

    4、 怎么獲取用戶(hù)信息:可以參考springside中的實(shí)現(xiàn)org.springside.modules.security.springsecurity.SpringSecurityUtils。具體信息都在Authentication這個(gè)類(lèi)中。

    posted @ 2009-08-13 14:18 風(fēng)人園 閱讀(230) | 評(píng)論 (0)編輯 收藏

    Ext.data.jsonReader的格式

    在Grid和Form進(jìn)行異步載入的時(shí)候,一般都是用json來(lái)進(jìn)行返回,這個(gè)時(shí)候就需要注意格式的問(wèn)題。jsonReader的格式是固定的,都是一樣的
    {"data":[{"spec":"aa","id":1,"name":"aa","helpCode":null,"code":"aaa"}],"success":true}
    注意:data的數(shù)據(jù)是一個(gè)數(shù)組,不管是grid顯示還是form顯示,都是數(shù)組,只是grid有多條,而form就只需要一條而已,這個(gè)問(wèn)題我也找了好一會(huì)兒。

    從代碼上看,grid和form調(diào)用的jsonReader是一樣,怎么格式有點(diǎn)不一樣,原來(lái)是這么個(gè)回事,兩者確實(shí)都是一樣的。

    經(jīng)過(guò)這次之后,對(duì)jsonReader有了更深的了解,只要是異步,用jsonReader就好了,一般的問(wèn)題都能搞定。

    特別是form的自己載入,這樣可以省掉很多事情。

    posted @ 2009-08-11 09:45 風(fēng)人園 閱讀(2287) | 評(píng)論 (0)編輯 收藏

    ECP--Ext grid

    周末的時(shí)候給項(xiàng)目從新想了一個(gè)名字,ECP,(電子商務(wù)平臺(tái)),呵呵,自己陶醉用的。

    今天的成果就是異步的grid實(shí)現(xiàn),效果是不錯(cuò)。現(xiàn)在剩下按鈕操作與grid的結(jié)合的問(wèn)題。明天繼續(xù)努力。

    工作越來(lái)越煩了,該死的破老大,一點(diǎn)不懂,就瞎指揮,要不是回家沒(méi)有地方去,早不干了。哎,繼續(xù)努力吧。早日完成這個(gè)項(xiàng)目,走人:)

    posted @ 2009-08-10 17:00 風(fēng)人園 閱讀(184) | 評(píng)論 (0)編輯 收藏

    ECApp--產(chǎn)品主數(shù)據(jù)操作界面

            又經(jīng)過(guò)了半天多的努力,總算頁(yè)面基本操作都能實(shí)現(xiàn)了,下面就是完善操作及異常處理。
            在window&form的操作上有些小問(wèn)題。
            還有就是grid的異步數(shù)據(jù)載入,暫時(shí)用array,下面考慮用json來(lái)異步實(shí)現(xiàn)。

    繼續(xù)看效果圖


    用ext做這種界面確實(shí)很爽,用戶(hù)體驗(yàn)會(huì)很好,呵呵,我很喜歡這種淡淡的藍(lán),看著養(yǎng)眼,舒服。

    posted @ 2009-08-07 15:01 風(fēng)人園 閱讀(211) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共10頁(yè): 上一頁(yè) 1 2 3 4 5 6 7 8 9 下一頁(yè) Last 
    主站蜘蛛池模板: 久久精品亚洲中文字幕无码网站| 成人永久免费福利视频网站| 亚洲一区二区女搞男| 麻豆va在线精品免费播放| 国产午夜鲁丝片AV无码免费| 狠狠入ady亚洲精品| 亚洲Av无码乱码在线znlu| 香蕉视频在线观看免费| 亚洲人成网站色在线入口| 免费无码午夜福利片| 国产乱辈通伦影片在线播放亚洲| 乱淫片免费影院观看| 伊伊人成亚洲综合人网7777| 91精品手机国产免费| 亚洲最新视频在线观看| 免费精品国产自产拍在线观看图片| 波多野结衣亚洲一级| 国产成人免费网站在线观看| 特a级免费高清黄色片| 亚洲不卡av不卡一区二区| aⅴ在线免费观看| 亚洲AV日韩AV无码污污网站| 亚洲国产成人久久一区久久| 在线成人精品国产区免费| 亚洲福利电影一区二区?| 日韩免费a级在线观看| 岛国岛国免费V片在线观看 | 最近免费中文字幕高清大全| 久久狠狠爱亚洲综合影院| 国产成人免费ā片在线观看| 91精品全国免费观看青青| 亚洲系列中文字幕| 在线观看国产情趣免费视频| 国产精品免费在线播放| 亚洲另类古典武侠| 波多野结衣视频在线免费观看| 国产一精品一av一免费爽爽| 欧洲精品免费一区二区三区| 精品无码一级毛片免费视频观看| 亚洲色图综合网站| 亚洲成?Ⅴ人在线观看无码|