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

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

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

    隨筆 - 10, 文章 - 0, 評(píng)論 - 7, 引用 - 0
    數(shù)據(jù)加載中……

    2007年5月25日

    關(guān)于appfuse的探討

          項(xiàng)目在緊張的生活中很快就要結(jié)束了,一直以來(lái),都是由于工作的繁忙,沒(méi)有時(shí)間去寫(xiě)自己的blog.這段時(shí)間終于可以稍微閑下來(lái)了,覺(jué)得應(yīng)該把這一階段的工作總結(jié)一下了,但是拿起鍵盤(pán),思緒卻有些散亂,想寫(xiě)的很多,卻也不知道怎么來(lái)寫(xiě),還是慢慢來(lái)吧.
       首先說(shuō)一下整體框架appfuse,它是集成了當(dāng)今最流行的web應(yīng)用框架的更高層次的web開(kāi)發(fā)框架.也可以說(shuō)是一個(gè)web開(kāi)發(fā)的基本平臺(tái),它將當(dāng)前最流行的一些技術(shù),比如hibernate,spring,struts,DBUnit,ant,log4j,xdoclet,sitemesh,velocity,jstl,webwork,等等都集成了進(jìn)來(lái),在國(guó)內(nèi)能夠?qū)⑦@些都應(yīng)用進(jìn)來(lái)的并不多見(jiàn).

    待續(xù)....

    posted @ 2007-06-07 23:56 LiuTing 閱讀(248) | 評(píng)論 (0)編輯 收藏

    JS常見(jiàn)函數(shù)

    1.常規(guī)函數(shù)  
      javascript常規(guī)函數(shù)包括以下9個(gè)函數(shù):  
      (1)alert函數(shù):顯示一個(gè)警告對(duì)話(huà)框,包括一個(gè)OK按鈕。  
      (2)confirm函數(shù):顯示一個(gè)確認(rèn)對(duì)話(huà)框,包括OK、Cancel按鈕。  
      (3)escape函數(shù):將字符轉(zhuǎn)換成Unicode碼。  
      (4)eval函數(shù):計(jì)算表達(dá)式的結(jié)果。  
      (5)isNaN函數(shù):測(cè)試是(true)否(false)不是一個(gè)數(shù)字。  
      (6)parseFloat函數(shù):將字符串轉(zhuǎn)換成符點(diǎn)數(shù)字形式。  
      (7)parseInt函數(shù):將符串轉(zhuǎn)換成整數(shù)數(shù)字形式(可指定幾進(jìn)制)。  
      (8)prompt函數(shù):顯示一個(gè)輸入對(duì)話(huà)框,提示等待用戶(hù)輸入。例如:  
      (9)unescape函數(shù):解碼由escape函數(shù)編碼的字符。  
      2.數(shù)組函數(shù)  
      javascript數(shù)組函數(shù)包括以下4個(gè)函數(shù):  
      (1)join函數(shù):轉(zhuǎn)換并連接數(shù)組中的所有元素為一個(gè)字符串。例:  
     
     程序代碼  
        function JoinDemo()  
        {  
         var a, b;  
         a = new Array(0,1,2,3,4);  
         b = a.join("-");//分隔符  
         return(b);//返回的b=="0-1-2-3-4"  
        }   
       
     (2)langth函數(shù):返回?cái)?shù)組的長(zhǎng)度。例:  
           
     程序代碼  
    function LengthDemo()  
        {  
         var a, l;  
         a = new Array(0,1,2,3,4);  
         l = a.length;  
         return(l);//l==5  
        }   
     
      (3)reverse函數(shù):將數(shù)組元素順序顛倒。例:  
          
     程序代碼  
    function ReverseDemo()  
       {  
        var a, l;  
        a = new Array(0,1,2,3,4);  
        l = a.reverse();  
        return(l);  
       }   
      (4)sort函數(shù):將數(shù)組元素重新排序。例:  
           
     程序代碼  
    function SortDemo()  
        {  
         var a, l;  
         a = new Array("X" ,"y" ,"d", "Z", "v","m","r");  
         l = a.sort();  
         return(l);  
        }   
      3.日期函數(shù)  
      javascript日期函數(shù)包括以下20個(gè)函數(shù):  
      (1)getDate函數(shù):返回日期的“日”部分,值為1~31。例:  
          
     程序代碼  
    function DateDemo()  
       {  
        var d, s = "Today's date is: ";  
        d = new Date();  
        s += (d.getMonth() + 1) + "/";  
        s += d.getDate() + "/";  
        s += d.getYear();  
        return(s);  
       }   
      (2)getDay函數(shù):返回星期幾,值為0~6,其中0表示星期日,1表示星期一,...,6表示星期六。例:  
          
     程序代碼  
    function DateDemo()  
       {  
        var d, day, x, s = "Today is: ";  
        var x = new Array("Sunday", "Monday", "Tuesday");  
        var x = x.concat("Wednesday","Thursday", "Friday");  
        var x = x.concat("Saturday");  
        d = new Date();  
        day = d.getDay();  
        return(s += x[day]);  
       }   
      (3)getHouse函數(shù):返回日期的“小時(shí)”部分,值為0~23。例。  
          
     程序代碼  
    function TimeDemo()  
       {  
        var d, s = "The current local time is: ";  
        var c = ":";  
        d = new Date();  
        s += d.getHours() + c;  
        s += d.getMinutes() + c;  
        s += d.getSeconds() + c;  
        s += d.getMilliseconds();  
        return(s);  
       }   
      (4)getMinutes函數(shù):返回日期的“分鐘”部分,值為0~59。見(jiàn)上例。  
      (5)getMonth函數(shù):返回日期的“月”部分,值為0~11。其中0表示1月,2表示3月,...,11表示12月。見(jiàn)前面的例子。  
      (6)getSeconds函數(shù):返回日期的“秒”部分,值為0~59。見(jiàn)前面的例子。  
      (7)getTime函數(shù):返回系統(tǒng)時(shí)間。  
          
     程序代碼  
    function GetTimeTest()  
       {  
        var d, s, t;  
        var MinMilli = 1000 * 60;  
        var HrMilli = MinMilli * 60;  
        var DyMilli = HrMilli * 24;  
        d = new Date();  
        t = d.getTime();  
        s = "It's been " 
        s += Math.round(t / DyMilli) + " days since 1/1/70";  
        return(s);  
       }   
      (8)getTimezoneOffset函數(shù):返回此地區(qū)的時(shí)差(當(dāng)?shù)貢r(shí)間與GMT格林威治標(biāo)準(zhǔn)時(shí)間的地區(qū)時(shí)差),單位為分鐘。  
          
     程序代碼  
    function TZDemo()  
       {  
        var d, tz, s = "The current local time is ";  
        d = new Date();  
        tz = d.getTimezoneOffset();  
     
        if (tz 的鏈接點(diǎn)的名稱(chēng),另一個(gè)函數(shù)link設(shè)定的URL地址。  
      (2)big函數(shù):將字體加到一號(hào),與...標(biāo)簽結(jié)果相同。  
      (3)blink函數(shù):使字符串閃爍,與...標(biāo)簽結(jié)果相同。  
      (4)bold函數(shù):使字體加粗,與...標(biāo)簽結(jié)果相同。  
      (5)charAt函數(shù):返回字符串中指定的某個(gè)字符。  
      (6)fixed函數(shù):將字體設(shè)定為固定寬度字體,與...標(biāo)簽結(jié)果相同。  
      (7)fontcolor函數(shù):設(shè)定字體顏色,與標(biāo)簽結(jié)果相同。  
      (8)fontsize函數(shù):設(shè)定字體大小,與標(biāo)簽結(jié)果相同。  
      (9)indexOf函數(shù):返回字符串中第一個(gè)查找到的下標(biāo)index,從左邊開(kāi)始查找。  
      (10)italics函數(shù):使字體成為斜體字,與...標(biāo)簽結(jié)果相同。  
      (11)lastIndexOf函數(shù):返回字符串中第一個(gè)查找到的下標(biāo)index,從右邊開(kāi)始查找。  
      (12)length函數(shù):返回字符串的長(zhǎng)度。(不用帶括號(hào))  
      (13)link函數(shù):產(chǎn)生一個(gè)超級(jí)鏈接,相當(dāng)于設(shè)定的URL地址。  
      (14)small函數(shù):將字體減小一號(hào),與...標(biāo)簽結(jié)果相同。  
      (15)strike函數(shù):在文本的中間加一條橫線(xiàn),與...標(biāo)簽結(jié)果相同。  
      (16)sub函數(shù):顯示字符串為下標(biāo)字(subscript)。  
      (17)substring函數(shù):返回字符串中指定的幾個(gè)字符。  
      (18)sup函數(shù):顯示字符串為上標(biāo)字(superscript)。  
      (19)toLowerCase函數(shù):將字符串轉(zhuǎn)換為小寫(xiě)。  
      (20)toUpperCase函數(shù):將字符串轉(zhuǎn)換為大寫(xiě)。  
     
    //校驗(yàn)是否全由數(shù)字組成  
     
     程序代碼  
    function isDigit(s)  
    {  
    var patrn=/^[0-9]{1,20}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)登錄名:只能輸入5-20個(gè)以字母開(kāi)頭、可帶數(shù)字、“_”、“.”的字串  
     
     程序代碼  
    function isRegisterUserName(s)  
    {  
    var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)用戶(hù)姓名:只能輸入1-30個(gè)以字母開(kāi)頭的字串  
     
     程序代碼  
    function isTrueName(s)  
    {  
    var patrn=/^[a-zA-Z]{1,30}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)密碼:只能輸入6-20個(gè)字母、數(shù)字、下劃線(xiàn)  
     
     程序代碼  
    function isPasswd(s)  
    {  
    var patrn=/^(\w){6,20}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)普通電話(huà)、傳真號(hào)碼:可以“+”開(kāi)頭,除數(shù)字外,可含有“-”  
     
     程序代碼  
    function isTel(s)  
    {  
    //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;  
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)手機(jī)號(hào)碼:必須以數(shù)字開(kāi)頭,除數(shù)字外,可含有“-”  
     
     程序代碼  
    function isMobil(s)  
    {  
    var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)郵政編碼  
     
     程序代碼  
    function isPostalCode(s)  
    {  
    //var patrn=/^[a-zA-Z0-9]{3,12}$/;  
    var patrn=/^[a-zA-Z0-9 ]{3,12}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
    //校驗(yàn)搜索關(guān)鍵字  
     
     程序代碼  
    function isSearch(s)  
    {  
    var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\'\,.<>?]{0,19}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  
     
     程序代碼  
    function isIP(s) //by zergling  
    {  
    var patrn=/^[0-9.]{1,20}$/;  
    if (!patrn.exec(s)) return false 
    return true 
    }  

    posted @ 2007-05-29 18:03 LiuTing 閱讀(298) | 評(píng)論 (0)編輯 收藏

    DISPALYTAG的用法

    1) Caption指標(biāo)題
    2) name:數(shù)據(jù)源
    3) defaultsort:排序列,一般不需要
    4) defaultorder:排序方式
    5) class:表格顯示的樣式
    6) varTotals:需要統(tǒng)計(jì)(總計(jì))
    7) decorator="totals":表示使用指定的decorator?,F(xiàn)在僅在同時(shí)使用小計(jì)、合計(jì)時(shí)用到,自己也可以定制。
    8) <display:column 部分:
      property指數(shù)據(jù)中的列名
      title指顯示的標(biāo)題
      format指數(shù)據(jù)的格式化樣式,
      total表示該字段是否需要作統(tǒng)計(jì)。
      style="width:20%"可以設(shè)置寬度。
      也可以用
      <display:column title="請(qǐng)假時(shí)間">
      <fmt:formatDate value="${currentRowObject.QJSJ}" pattern="yyyy-MM-dd"/>
      </display:column>表現(xiàn)。
      group="1"表示進(jìn)行g(shù)roup的字段。
    9) 在表格中建立一個(gè)連接:
      <display:column title="部別">
      <a href="<c:out value="${pageContext.request.contextPath}"/>
      /holidayDefaultSearchStatView.do?type=
      <c:out value="${currentRowObject.CJDM}"/>&SYD=
      <c:out value="${currentRowObject.DWDM}"/>" target="_blank">
      <c:out value="${currentRowObject.DWMC}"/>
      </a>
      </display:column>
    10) 由于該tag只有合計(jì)時(shí),沒(méi)有合計(jì)那一列,所以實(shí)現(xiàn)的時(shí)候以<display:footer>實(shí)現(xiàn)。
      可以通過(guò)totalMap對(duì)象獲取合計(jì)的數(shù)據(jù),如totalMap.colomn1獲取合計(jì)的第一列數(shù)值。
    11) 標(biāo)題頭不顯示<display:setProperty name="basic.show.header" value="false" />
    12) 自己定制表頭:<display:caption>
       使用decorator:
       <jsp:scriptlet>
       org.displaytag.decorator.TotalTableDecorator totals =
       new org.displaytag.decorator.TotalTableDecorator();
           totals.setTotalLabel("合計(jì)");
           totals.setSubtotalLabel("小計(jì)");
           pageContext.setAttribute("totals", totals);
       </jsp:scriptlet>
    實(shí)例:
    <display:caption>這是表標(biāo)題</display:caption>
     <display:table
      name="${model.rowToColumnStatResult}" defaultsort="1"
      class="simple" defaultorder="ascending" varTotals="totalMap">
      <display:column property="GCWZ" title="部門(mén)"/>
       <c:forEach items="${model.YList.YList}" var="yColumn">
       <c:forEach items="${model.rowToColumnStatResult[0]}"
          var="mapEntry">
        <c:if test="${mapEntry.key == yColumn}">
         <th>
           <display:column property="${mapEntry.key}"
           title="${mapEntry.key}"
           format="{0,number,####.##}" total="true"/>
         </th>
        </c:if>
       </c:forEach>
       </c:forEach>
      <display:column property="小計(jì)"
          title="小計(jì)"
          format="{0,number,####.##}" total="true"/>
     <display:footer>
     <tr>
      <td>總計(jì)</td>
      <c:forEach items="${model.YList.YColumn}" var="yColumn">
      <td><fmt:formatNumber value="${totalMap[yColumn]}"
            pattern="####.##"/>
      </td>
      </c:forEach>
     </tr>
     </display:footer>
    </display:table>
     

    另外一個(gè)例子:
    <display:table name="${model.statResult}" class="simple"
     varTotals="totalMap">
     <display:column property="XMMC" title="項(xiàng)目名稱(chēng)" />
     <display:column property="KSRQ" title="開(kāi)始日期" />
     <display:column property="FZRXM" title="負(fù)責(zé)人姓名" />
     <display:column property="GKDW" title="掛靠單位" />
     <display:column property="JFLY" title="經(jīng)費(fèi)來(lái)源" />
     <display:column property="XMZJF" title="項(xiàng)目總經(jīng)費(fèi)" total="true" />
     <display:column property="DNDKJF" title="當(dāng)年到款經(jīng)費(fèi)" total="true"/>
     <display:footer>
      <tr><td colspan="5">總計(jì)</td>
       <td>
        <fmt:formatNumber value="${totalMap.column6}"
         pattern="####.####" />
       </td>
       <td>
        <fmt:formatNumber value="${totalMap.column7}"
         pattern="####.####" />
       </td>
      </tr>
     </display:footer>
    </display:table>
    總計(jì)某一列的方法:
    ${totalMap.column?}    ?為該列號(hào)
    colspan="5":表示這個(gè)單元格占5個(gè)單元格
    項(xiàng)目名稱(chēng) 開(kāi)始日期  負(fù)責(zé)人姓名 掛靠單位 經(jīng)費(fèi)來(lái)源 項(xiàng)目總經(jīng)費(fèi) 當(dāng)年到款經(jīng)費(fèi)
                                                       531      400
                                                       151       10
    -------------------------------------
    總計(jì)                              682     500 

    posted @ 2007-05-25 10:42 LiuTing 閱讀(757) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 色综合久久精品亚洲国产| 永久免费AV无码网站国产| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 亚洲午夜精品一级在线播放放| 中文字幕a∨在线乱码免费看| 亚洲国产精品线观看不卡| 在线观看免费亚洲| 亚洲一区二区在线免费观看| 亚洲av无码日韩av无码网站冲| 国产亚洲精久久久久久无码77777| 久久午夜免费视频| 国产精品综合专区中文字幕免费播放| 亚洲av伊人久久综合密臀性色| 日本a级片免费看| 小日子的在线观看免费| 国产精品亚洲色婷婷99久久精品| 亚洲AV区无码字幕中文色| 曰皮全部过程视频免费国产30分钟| 免费看一区二区三区四区| 亚洲老熟女五十路老熟女bbw| 亚洲人成激情在线播放| 亚洲男人天堂2020| 在线观看免费人成视频| 毛片在线播放免费观看| 日本免费网址大全在线观看 | 亚洲人成在线播放| 国产精品视_精品国产免费| 中文字幕成人免费高清在线| 亚洲一线产区二线产区区| 亚洲AV午夜成人片| 俄罗斯极品美女毛片免费播放| 最近免费中文在线视频| WWW国产成人免费观看视频| 亚洲人成色99999在线观看| 久久精品国产亚洲AV高清热| 最新亚洲成av人免费看| 日本成人免费在线| 最近中文字幕无吗免费高清| 亚洲免费在线视频播放| 国内精品一级毛片免费看| 一道本在线免费视频|