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

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

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

    風人園

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

    ECP--之信息提示

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

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

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

    posted @ 2009-08-31 14:37 風人園 閱讀(154) | 評論 (0)編輯 收藏

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

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

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


    /*
    彈出窗口
    endtarget: string 目標窗口
    無返回
    */

    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ù)
    無返回
    */

    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 對
    */

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

        
    return args;
    }
                

    /*
    行雙擊方法,用戶選擇行數(shù)據(jù)。
    通過回調(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();
    }


    主頁面 域id通過json字符串跟url傳遞后彈出頁面
    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);

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

    這里唯一需要變的就是,彈出頁面的返回值,可能因為需求的增加,需要返回更多的數(shù)據(jù),或者就一次性將所有數(shù)據(jù)都作為json數(shù)據(jù)返回。

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

    posted @ 2009-08-31 10:39 風人園 閱讀(573) | 評論 (0)編輯 收藏

    ibatis3中感覺比2不方便的地方


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

    2、annotion方式的評價,個人感覺沒有什么意義。從我來講,用iBATIS的主要原因是因為要處理比較復雜的sql,所以通常sql都會很長,就是因為不想通過字符串的方式寫在代碼里,要是寫在代碼里,直接用hibernate的原生sql就好了,何必還要用iBATIS呢。sql寫在xml里的好處是顯而易見的,可以直接將調(diào)試好的sql從sql的編輯器中復制過來,這樣可以省掉很多麻煩的事情,放在sql里面很長,又沒有辦法將格式弄好,要是換行什么的就更麻煩。

    一個比較有用好的改進就是namespace了,這個功能以前在2.X想用一直沒有用成。有了這個,很多通用的地方可以省略。

    posted @ 2009-08-26 16:30 風人園 閱讀(400) | 評論 (0)編輯 收藏

    ibatis3及代碼生成工具試用

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

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

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

    posted @ 2009-08-21 10:36 風人園 閱讀(844) | 評論 (1)編輯 收藏

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

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

    posted @ 2009-08-20 15:01 風人園 閱讀(167) | 評論 (0)編輯 收藏

    SpringSecurity見解

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

    posted @ 2009-08-18 10:53 風人園 閱讀(245) | 評論 (0)編輯 收藏

    ECP--安全控制

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

    1、 登錄action/spring_security_login

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

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

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

    posted @ 2009-08-13 14:18 風人園 閱讀(224) | 評論 (0)編輯 收藏

    Ext.data.jsonReader的格式

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

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

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

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

    posted @ 2009-08-11 09:45 風人園 閱讀(2280) | 評論 (0)編輯 收藏

    ECP--Ext grid

    周末的時候給項目從新想了一個名字,ECP,(電子商務(wù)平臺),呵呵,自己陶醉用的。

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

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

    posted @ 2009-08-10 17:00 風人園 閱讀(178) | 評論 (0)編輯 收藏

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

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

    繼續(xù)看效果圖


    用ext做這種界面確實很爽,用戶體驗會很好,呵呵,我很喜歡這種淡淡的藍,看著養(yǎng)眼,舒服。

    posted @ 2009-08-07 15:01 風人園 閱讀(204) | 評論 (0)編輯 收藏

    僅列出標題
    共10頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 亚洲国产第一站精品蜜芽| 久久久久久久亚洲精品| 亚洲字幕AV一区二区三区四区| 4虎永免费最新永久免费地址| 亚洲精品综合在线影院| 日本一道在线日本一道高清不卡免费 | 一级午夜a毛片免费视频| 国产精品亚洲玖玖玖在线观看| www在线观看免费视频| 亚洲人成人无码网www国产| 免费a级毛片无码a∨免费软件| 亚洲国产一区二区三区青草影视 | 国产精品酒店视频免费看| 一级女性全黄久久生活片免费| 久久精品国产亚洲AV不卡| 四虎成人精品永久免费AV| 精品亚洲AV无码一区二区三区| 国产成人啪精品视频免费网| 亚洲AⅤ男人的天堂在线观看| 国产成人免费高清在线观看| 在线看片免费人成视频久网下载 | 一本久久A久久免费精品不卡| 无码乱人伦一区二区亚洲一| 国产免费一区二区三区不卡| 亚洲国产高清视频在线观看| 国产亚洲精品无码拍拍拍色欲 | 亚洲一区二区三区四区在线观看| 国产在线播放免费| 又粗又大又黑又长的免费视频| 丁香花在线观看免费观看图片| 亚洲中文字幕无码久久2020| 亚洲邪恶天堂影院在线观看| 亚洲精品99久久久久中文字幕| 成全高清视频免费观看| 日韩人妻无码精品久久免费一| kk4kk免费视频毛片| 亚洲欧美成人av在线观看| 亚洲欧洲国产综合| 香蕉蕉亚亚洲aav综合| 日韩精品亚洲aⅴ在线影院| 免费黄色一级毛片|