中文 => English   |   English => 中文
          posts - 12, comments - 2, trackbacks - 0, articles - 0
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2008年9月28日

          js:
          當窗口關閉前做的動作
          function  window.onbeforeunload(){
             
          }

          在JS中定義數組刪除方法
          <script language=javascript>
          Array.prototype.del=function(n) {  //n表示第幾項,從0開始算起。
          //prototype為對象原型,注意這里為對象增加自定義方法的方法。
            if(n<0)  //如果n<0,則不進行任何操作。
              return this;
            else
              return this.slice(0,n).concat(this.slice(n+1,this.length));
              /*
                concat方法:返回一個新數組,這個新數組是由兩個或更多數組組合而成的。
                      這里就是返回this.slice(0,n)/this.slice(n+1,this.length)
                     組成的新數組,這中間,剛好少了第n項。
                slice方法: 返回一個數組的一段,兩個參數,分別指定開始和結束的位置。
              */
          }
          //我們來試一試這個自己增加的方法
          var test=new Array(0,1,2,3,4,5);
          test=test.del(3);  //從0算起,這里也就是刪除第4項。
          alert(test);
          </script>

           

          jquery:
          賦值:$("#tmidtemp").attr("value","XXXXX")
          得到值:$("#tmidtemp").attr("value")


          dwr:
          解析map結構數據:
          function built_trademark_left(data){
             var bar = document.getElementById('s1');
             var optionitems="";
           for(var property in data){  
                  optionitems+="<option value='"+property+"'>"+data[property]+"</option>"; //property是key;data[property]是值
               }
               $(optionitems).appendTo(bar);
               data=null;
          }

          css:
          背景顏色漸變:
          background:;filter:progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff,endColorStr=#FFD922);

          hibernate 用sql查詢
           SQLQuery 在調用list()方法前要加addEntity(XX,XX) 或者 addScalar(XX,XX) 方法。
           
          例如:
                String sql = "select {tll.*},(select t.appn_no      from Trademark t where t.id = tll.tmid) as appn_no,"
              +"(select t.tm_type      from Trademark t where t.id = tll.tmid) as tm_type,"
              +"(select l.ref_no       from licenagre l where l.id = tll.laid)   as ref_no,"
              +"(select l.tm_licensor  from licenagre l where l.id = tll.laid)   as tm_licensor "
              +"from tmLnkLa tll";
            SQLQuery sqlQuery = dao.getHibernateTemplate().getSessionFactory().openSession().createSQLQuery(sql);
            sqlQuery.addEntity("tll", TmLnkLa.class);
            sqlQuery.addScalar("appn_no", Hibernate.STRING);
            sqlQuery.addScalar("tm_type", Hibernate.STRING);
            sqlQuery.addScalar("ref_no", Hibernate.STRING);
            sqlQuery.addScalar("tm_licensor", Hibernate.STRING);
            List list = sqlQuery.list();
          在多表查詢中,為避免字段同名問題,需要加 {XXX}  如上例中的 {tll.*},否則會出現類似: Invalid column name: id0_  的錯誤

          posted @ 2008-11-24 14:55 牛X書記 閱讀(347) | 評論 (0)編輯 收藏

            1.   oncontextmenu="window.event.returnValue=false"   將徹底屏蔽鼠標右鍵  
            <table   border   oncontextmenu=return(false)><td>no</table>   可用于Table  
             
            2.   <body   onselectstart="return   false">   取消選取、防止復制  
             
            3.   onpaste="return   false"   不準粘貼  
             
            4.   oncopy="return   false;"   oncut="return   false;"   防止復制  
             
            5.   <link   rel="Shortcut   Icon"   href="favicon.ico">   IE地址欄前換成自己的圖標  
             
            6.   <link   rel="Bookmark"   href="favicon.ico">   可以在收藏夾中顯示出你的圖標  
             
            7.   <input   style="ime-mode:disabled">   關閉輸入法  
             
            8.   永遠都會帶著框架  
            <script   language="JavaScript"><!--  
            if   (window   ==   top)top.location.href   =   "frames.htm";   //frames.htm為框架網頁  
            //   --></script>  
             
            9.   防止被人frame  
            <SCRIPT   LANGUAGE=JAVASCRIPT><!--    
            if   (top.location   !=   self.location)top.location=self.location;  
            //   --></SCRIPT>  
             
            10.   網頁將不能被另存為  
            <noscript><iframe   src="/blog/*.html>";</iframe></noscript>    
             
            11.   <input   type=button   value=查看網頁源代碼    
            onclick="window.location   =   "view-source:"+   "http://www.williamlong.info"">  
             
            12.刪除時確認  
            <a   href="javascript:if(confirm("確實要刪除嗎?"))location="boos.asp?&areyou=刪除&page=1"">刪除</a>    
             
            13.   取得控件的絕對位置  
            //Javascript  
            <script   language="Javascript">  
            function   getIE(e){  
            var   t=e.offsetTop;  
            var   l=e.offsetLeft;  
            while(e=e.offsetParent)  
            alert("top="+t+"/nleft="+l);  
            }  
            </script>  
             
            //VBScript  
            <script   language="VBScript"><!--  
            function   getIE()  
            dim   t,l,a,b  
            set   a=document.all.img1  
            t=document.all.img1.offsetTop  
            l=document.all.img1.offsetLeft  
            while   a.tagName<>"BODY"  
            set   a   =   a.offsetParent  
            t=t+a.offsetTop  
            l=l+a.offsetLeft  
            wend  
            msgbox   "top="&t&chr(13)&"left="&l,64,"得到控件的位置"  
            end   function  
            --></script>  
             
            14.   光標是停在文本框文字的最后  
            <script   language="javascript">  
            function   cc()  
            {  
            var   e   =   event.srcElement;  
            var   r   =e.createTextRange();  
            r.moveStart("character",e.value.length);  
            r.collapse(true);  
            r.select();  
            }  
            </script>  
            <input   type=text   name=text1   value="123"   onfocus="cc()">  
             
            15.   判斷上一頁的來源  
            javascript:  
            document.referrer  

          posted @ 2008-10-13 10:23 牛X書記 閱讀(193) | 評論 (0)編輯 收藏

          (一).確認刪除用法:
            1. BtnDel.Attributes.Add("onclick","return confirm('"+"確認刪除?"+"')");
            2. linktempDelete.Attributes["onclick"]="javascript:return  confirm('"+"確認刪除?"+"');";
            3. private void grdProject_ItemDataBound(object sender, DataGridItemEventArgs e)
            4.
            {
          if ((e.Item.ItemType == ListItemType.Item) | (e.Item.ItemType == ListItemType.AlternatingItem))
          {
            // 刪除按鈕上的提示部分
            e.Item.Cells[10].Attributes.Add("onclick", "return confirm('確定刪除嗎?');");

            }
            5.
              <script language="JavaScript" type="text/JavaScript">
          function delete_y(e)
                  {
              if(event.srcElement.outerText == "刪除")
                  event.returnValue=confirm("確定刪除?");
          }
          document.onclick=delete_y;
              </script>

          (二).跨語言字符串替換
              System.Text.RegularExpressions.Regex.Replace(str1,@" <{1}[^ <>]*>{1}","").Replace("&nbsp;","").Replace("\","\\").Replace("-","-").Replace("&amp;","&").Replace("&lt;"," <").Replace("&gt;",">").Replace("br","\n");

          (三).關閉窗體
            1.
                this.btnClose.Attributes.Add("onclick",  "window.close();return false;");
            2.關閉本窗體間跳轉到另一個頁面
                this.HyperLink1.NavigateUrl = "javascript:onclick=window.opener.location.assign
                  ('" + "index.aspx"+ "?&Func=Edit&AutoID=" + intAutoid + ');window.close();";
            3.關閉父窗體:
                <INPUT type="reset" value=' <%=this._Cancel%>' onclick="window.parent.close()"  Class="Button">

            4.關閉本彈出窗體,并刷新父頁面

                this.Response.Write(" <script language='javascript'>window.opener.location.reload();window.close(); </script>");


          (四).Web MessageBox 
            1.
                Response.Write(" <script language=javascript> window.alert('保存成功1'); </script>");
            2.
                Response.Write(" <script>alert('"+"保存成功!"+"'); </script>");
            3.
                this.Page.RegisterStartupScript("ChiName"," <script language='javascript'>alert('" + "保存成功!" + "') </script>");

          (五).DataGrid中加CheckBox控件模板列.
            請看:  http://blog.csdn.net/chengking/archive/2005/10/08/497520.aspx

          (六). window.open() 方法
          語法:window.open(pageurl,name,parameters);
          window對象的open()方法用于創建一個新的窗口實例,新創建的窗口的外觀由參數:parameters指定。新窗口中打開的文檔由參數:        pageurl指定。系統能夠根據參數:name確定的名稱訪問該窗口。

                  下表為parameters參數表:
                  參數          衩始值          說明
                  alwaysLowered yes/no 指定窗口隱藏在所有窗口之下。
                  alwaysRaised yes/no 指定窗口浮在所有窗口之上。
                  dependent yes/no 指定打開的窗口為父窗口的一個了窗口。并隨父窗口的關閉而關閉。
                  directions yes/no 指定Navigator 2和3的目錄欄是否在新窗口中可見。
                  height pixel value 設定新窗口的像素高度。
                  hotkeys yes/no 在沒有菜單欄的新窗口設置安全退出熱鍵。
                  innerHeight pixel value 設置新窗口中文檔的像素高度。
                  innerWidth pixel value 設置新窗口中文檔的像素寬度。
                  location yes/ no 指明位置欄在新窗口中是否可見。
                  menubar yes /no 指明菜單欄在新窗口中是否可見。
                  outerHeight pixel value 設定窗口(包括裝飾邊框)的像素高度。
                  outerWidth pixel value 設定窗口(包括裝飾邊框)的像素寬度。
                  resizable yes /no 指明新窗口是否可以調整。
                  screenX pixel value 設定新窗口離屏幕邊界的像素長度。
                  screenY pixel value 設定新窗口離屏幕上邊界的像素長度。
                  scrollbars yes /no 指明滾動欄在新窗口中是否可見。
                  titlebar yes /no 指明菜單題目欄在新窗口是否可見。
                  toolbar yes /no 指明工具欄在新窗口中是否可見。
                  Width pixel value 設定窗口的像素寬度。
                  z-look yes /no 在文檔中包含各個 <pplet>標簽的數組。
                  fullscreen yes / no 打開的窗體是否進行全屏顯示
                  left pixel value 設定新窗口距屏幕左方的距離
                  top pixel value 設定新窗口距屏幕上方的距離
           
                例子:
                  <html>
                    <head>
                        <title>window.open函數 </title>
                    </head>
                    <body>
                        <script language="javascript">
                            <!--
                          window.open("","name1","width=100,height=200,toolbar=no,scrollbars=no,menubar=no,screenX=100,screenY=100");
                              //-->
                        </script>
                    </body>
                  </html>

          (七).location對象   
              href 整個URL字符串.
              protocol 含有URL第一部分的字符串,如http:
              host 包含有URL中主機名:端口號部分的字符串.如//www.cenpok.net/server/
              hostname 包含URL中主機名的字符串.如http://www.cenpok.net
              port 包含URL中可能存在的端口號字符串.
              pathname URL中"/"以后的部分.如~list/index.htm
              hash "#"號(CGI參數)之后的字符串.
              search "?"號(CGI參數)之后的字符串.

          (八).按鍵捕捉
            1.Ctrl+Enter按鍵捕捉方法
              <body onkeydown="doKeyDown()">
              <script language="JavaScript">
              <!--
              function doKeyDown()
              {
                  if (event.ctrlKey && event.keyCode == 13)
                  {
                    alert("You pressed the Ctrl + Enter")
                  }
              }
              //-->
              </script>
              </body>
            2.Alt加快捷鍵: Alt+A
              <button accessKey=A title="Alt+A" onclick="alert('Button clicked!')">Alt+A </button>
          (九).控制輸入,非法字符不能輸入到TextBox.
              <asp:textbox class="Text"
                  onkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;"
          id="txtY_Revenue" style="TEXT-ALIGN: right" runat="server" Width="90%" MaxLength="12">
              </asp:textbox>
              說明: 此方法控制TextBox只收數字:0~9 , 也自可以定義其它可輸入字符,如改成: 65~123,只允許輸入: a~z和A~Z 等.

          [以下為收藏]

          1>屏蔽功能類

          1.1 屏蔽鍵盤所有鍵
          <script language="javascript">
          <!--
          function document.onkeydown(){
            event.keyCode = 0;
            event.returnvalue = false;
          }
          -->
          </script>

          1.2 屏蔽鼠標右鍵

          在body標簽里加上oncontextmenu=self.event.returnvalue=false

          或者

          <script language="javascript">
          <!--
          function document.oncontextmenu()
          {
            return false;
          }
          -->
          </script>

          function nocontextmenu()
          {
              if(document.all) {
                  event.cancelBubble=true;
                  event.returnvalue=false;
                  return false;
              }
          }

          或者

          <body onmousedown="rclick()" oncontextmenu= "nocontextmenu()">

          <script language="javascript">
          <!--
          function rclick()
          {
              if(document.all) {
                  if (event.button == 2){
                      event.returnvalue=false;
                  }
              }
          }
          -->
          </script>


          1.3 屏蔽 Ctrl+N、Shift+F10、F5刷新、退格鍵

          <script language="javascript">
          <!--
            //屏蔽鼠標右鍵、Ctrl+N、Shift+F10、F5刷新、退格鍵
          function window.onhelp(){return false} //屏蔽F1幫助
          function KeyDown(){
            if ((window.event.altKey)&&
                ((window.event.keyCode==37)||  //屏蔽 Alt+ 方向鍵 ←
                (window.event.keyCode==39))){  //屏蔽 Alt+ 方向鍵 →
              alert("不準你使用ALT+方向鍵前進或后退網頁!");
              event.returnvalue=false;
              }

              /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
              因為 Alt+ 方向鍵彈出警告框時,按住 Alt 鍵不放,
              用鼠標點掉警告框,這種屏蔽方法就失效了。以后若
              有哪位高手有真正屏蔽 Alt 鍵的方法,請告知。*/

            if ((event.keyCode == 8) &&
                (event.srcElement.type != "text" &&
                event.srcElement.type != "textarea" &&
                event.srcElement.type != "password") ||          //屏蔽退格刪除鍵 
                (event.keyCode==116)||                            //屏蔽 F5 刷新鍵
                (event.ctrlKey && event.keyCode==82)){            //Ctrl + R
              event.keyCode=0;
              event.returnvalue=false;
              }
            if ((event.ctrlKey)&&(event.keyCode==78))  //屏蔽 Ctrl+n
              event.returnvalue=false;
            if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10
              event.returnvalue=false;
            if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
                window.event.returnvalue = false;  //屏蔽 shift 加鼠標左鍵新開一網頁
            if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
                window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
                return false;}
            }
          /* 另外可以用 window.open 的方法屏蔽 IE 的所有菜單
          第一種方法:
            window.open("你的.htm", "","toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0")
          第二種方法是打開一個全屏的頁面:
            window.open("你的.asp", "", "fullscreen=yes")
          */
          //-->
          </script>


          1.4屏蔽瀏覽器右上角“最小化”“最大化”“關閉”鍵

          <script language=javascript>
          function window.onbeforeunload()
          {
            if(event.clientX>document.body.clientWidth&&event.clientY <0||event.altKey)
            {
              window.event.returnvalue = "";
            }
          }
          </script>

          或者使用全屏打開頁面

          <script language="javascript">
          <!--
          window.open(www.32pic.com,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no");
          -->
          </script>

          注:在body標簽里加上onbeforeunload="javascript:return false"(使不能關閉窗口)

          1.5屏蔽F5鍵

          <script language="javascript">
          <!--
          function document.onkeydown()
          {
              if ( event.keyCode==116)
              {
                  event.keyCode = 0;
                  event.cancelBubble = true;
                  return false;
              }
          }
          -->
          </script>

          1.6屏蔽IE后退按鈕

          在你鏈接的時候用 <a href="javascript:location.replace(url)">

          1.7屏蔽主窗口滾動條

          在body標簽里加上 style="overflow-y:hidden"

          1.8 屏蔽拷屏,不斷地清空剪貼板

          在body標簽里加上onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)"

          1.9 屏蔽網站的打印功能

          <style>
          @media print {
            * { display: none }
          }
          </style>

          1.10 屏蔽IE6.0 圖片上自動出現的保存圖標

          方法一:
          <META HTTP-EQUIV="imagetoolbar" CONTENT="no">
          方法二:
          <img galleryimg="no">

          1.11 屏蔽頁中所有的script

          <noscrript> </noscript>

          2>表單提交驗證類



          2.1 表單項不能為空

          <script language="javascript">
          <!--
          function CheckForm()
          {
          if (document.form.name.value.length == 0) {
            alert("請輸入您姓名!");
            document.form.name.focus();
            return false;
          }
            return true;
          }
          -->
          </script>

          2.2 比較兩個表單項的值是否相同

          <script language="javascript">
          <!--
          function CheckForm()
          if (document.form.PWD.value != document.form.PWD_Again.value) {
            alert("您兩次輸入的密碼不一樣!請重新輸入.");
            document.ADDUser.PWD.focus();
            return false;
          }
            return true;
          }
          -->
          </script>

          2.3 表單項只能為數字和"_",用于電話/銀行帳號驗證上,可擴展到域名注冊等

          <script language="javascript">
          <!--
          function isNumber(String)
          {
              var Letters = "1234567890-"; //可以自己增加可輸入值
              var i;
              var c;
                if(String.charAt( 0 )=='-')
          return false;
                if( String.charAt( String.length - 1 ) == '-' )
                    return false;
              for( i = 0; i < String.length; i ++ )
              {
                    c = String.charAt( i );
            if (Letters.indexOf( c ) < 0)
                    return false;
          }
              return true;
          }
          function CheckForm()
          {
              if(! isNumber(document.form.TEL.value)) {
            alert("您的電話號碼不合法!");
                  document.form.TEL.focus();
                  return false;
          }
          return true;
          }
          -->
          </script>


          2.4 表單項輸入數值/長度限定

          <script language="javascript">
          <!--
          function CheckForm()
          {
              if (document.form.count.value > 100 || document.form.count.value < 1)
          {
          alert("輸入數值不能小于零大于100!");
          document.form.count.focus();
          return false;
          }
              if (document.form.MESSAGE.value.length <10)
          {
          alert("輸入文字小于10!");
          document.form.MESSAGE.focus();
          return false;
          }
          return true;
          }
          //-->
          </script>

          2.5 中文/英文/數字/郵件地址合法性判斷

          <SCRIPT LANGUAGE="javascript">
          <!--

          function isEnglish(name) //英文值檢測
          {
          if(name.length == 0)
            return false;
          for(i = 0; i < name.length; i++) {
            if(name.charCodeAt(i) > 128)
            return false;
          }
          return true;
          }

          function isChinese(name) //中文值檢測
          {
          if(name.length == 0)
            return false;
          for(i = 0; i < name.length; i++) {
            if(name.charCodeAt(i) > 128)
            return true;
          }
          return false;
          }

          function isMail(name) // E-mail值檢測
          {
          if(! isEnglish(name))
            return false;
          i = name.indexOf("@");
          j = name.lastIndexOf("@");
          if(i == -1)
            return false;
          if(i != j)
            return false;
          if(i == name.length)
            return false;
          return true;
          }

          function isNumber(name) //數值檢測
          {
          if(name.length == 0)
            return false;
          for(i = 0; i < name.length; i++) {
            if(name.charAt(i) < "0" || name.charAt(i) > "9")
            return false;
          }
          return true;
          }

          function CheckForm()
          {
          if(! isMail(form.Email.value)) {
            alert("您的電子郵件不合法!");
            form.Email.focus();
            return false;
          }
          if(! isEnglish(form.name.value)) {
            alert("英文名不合法!");
            form.name.focus();
            return false;
          }
          if(! isChinese(form.cnname.value)) {
            alert("中文名不合法!");
            form.cnname.focus();
            return false;
          }
          if(! isNumber(form.PublicZipCode.value)) {
            alert("郵政編碼不合法!");
            form.PublicZipCode.focus();
            return false;
          }
          return true;
          }
          //-->
          </SCRIPT>

          2.6 限定表單項不能輸入的字符

          <script language="javascript">
          <!--

          function contain(str,charset)// 字符串包含測試函數
          {
            var i;
            for(i=0;i <charset.length;i++)
            if(str.indexOf(charset.charAt(i))>=0)
            return true;
            return false;
          }

          function CheckForm()
          {
          if ((contain(document.form.NAME.value, "%\(\)> <")) || (contain(document.form.MESSAGE.value, "%\(\)> <")))
          {
            alert("輸入了非法字符");
            document.form.NAME.focus();
            return false;
          }
            return true;
          }
          //-->
          </script>

          posted @ 2008-10-13 10:22 牛X書記 閱讀(252) | 評論 (0)編輯 收藏

          1.錢不是問題,問題是沒錢!
          2.喝醉了我誰也不服,我就扶墻!
          3.我就像一只趴在玻璃上的蒼蠅,前途一片光明,但又找不到出路.
          4.大師兄,你知道嗎?二師兄的肉現在比師傅的都貴了 
          5.如果多吃魚可以補腦讓人變聰明的話,那么你至少得吃一對兒鯨魚……
          6.水至清則無魚,人至賤則無敵。
          7.青春就像衛生紙,看著挺多得,用著用著就不夠了~
          8.懷才就像懷孕,時間久了才能讓人看出來。
          9.我身邊的朋友們啊,你們快點出名吧,這樣我的回憶錄就可以暢銷了~~~
          10.同事去見客戶,可能是緊張,一開口便是:“劉先生你好,請問你貴姓啊?”汗啊~~~~~~
          11.一女同學黑了些,她男友又太白了些,有天宿舍里得毒舌天后突然對她冒出一句:“你們這樣不行,你們會生出斑馬來的”
          12.老娘一向視帥哥與金錢如糞土,而他們也一直是這樣看我的
          13.不要和我比懶,我懶得和你比
          14.我不是個隨便的人 我隨便起來不是人
          15.上帝說,要有光,我說我反對,從此世界上有了黑暗
          16.今天心情不好.我只有四句話想說.包括這句和前面的兩句.我的話說完了......
          17.做人就要做一個徘徊在牛A和牛C之間的人
          18.我的大名叫上帝,小名叫耶穌,英文名God, 法號是如來...
          19.人不能在一棵樹上吊死,要在附近幾棵樹上多死幾次試試
          20.樹不要皮,必死無疑;人不要臉,天下無敵。
          21.農夫三拳有點疼
          22.其實我一直很受人歡迎的:小時候的我人見人愛,如今的我人賤人愛
          23.不怕虎一樣的敵人,就怕豬一樣的隊友
          24.走自己的路,讓別人打車去吧
          25.老鼠扛刀,滿街找貓
          26.只要功夫深,拉屎也認真
          27.中國人誰跑的最快?是曹操(非劉翔)。因為說曹操曹操到
          28.思想有多遠,你就給我滾多遠
          29.只有在火車站大排長龍時,才能真正意識到自己是“龍的傳人”。
          30.有情人終成家屬
          31.春天來了,一群大雁正向北飛,一會兒排成B字型,一會兒排成T字型..
          32.在哪里跌倒 就在哪里躺下
          33.老虎不發威 你當我是HELLO KITTY!
          34.驢是的念來過倒~

          posted @ 2008-10-06 14:20 牛X書記 閱讀(595) | 評論 (0)編輯 收藏

          1.吃了辣的東西,感覺就要被辣死了,就往嘴里放上少許鹽,含一下,吐掉,漱下口,就不辣了;
          2.牙齒黃,可以把花生嚼碎后含在嘴里,并刷牙三分鐘,很有效;
          3.若有小面積皮膚損傷或者燒傷、燙傷,抹上少許牙膏,可立即止血止痛;
          4.經常裝茶的杯子里面留下難看的茶漬,用牙膏洗之,非常干凈;
          5.仰頭點眼藥水時微微張嘴,這樣眼睛就不會亂眨了;
          6.嘴里有潰瘍,就用維生素C貼在潰瘍處,等它溶化后潰瘍基本就好了;
          7.眼睛進了小灰塵,閉上眼睛用力咳嗽幾下,灰塵就會自己出來;
          8.洗完臉后,用手指沾些細鹽在鼻頭兩側輕輕按摩,然后再用清水沖洗,黑頭和粉刺就會清除干凈,毛細孔也會變小;
          9.剛剛被蚊子咬完時,涂上肥皂就不會癢了;
          10.如果嗓子、牙齦發炎了,在晚上把西瓜切成小塊,沾著鹽吃,記得一定要是晚上,當時癥狀就會減輕,第二天就好了;
          11.吹風機對著標簽吹,等吹到商標的膠熱了,就可以很容易的把標簽撕下來;
          12.旅行帶衣服時如果怕壓起褶皺,可以把每件衣服都卷成卷;
          13.打打嗝時就喝點醋,立桿見影;
          14.吃了有異味的東西,如大蒜、臭豆腐,吃幾顆花生米就好了;
          15.治療咳嗽,特別是干咳,晚上睡覺前,用純芝麻香油煎雞蛋,油放稍多些,什么調味料都不要放,趁熱吃過就去睡覺,連吃幾天效果很明顯;
          16.手腕長粗的MM想帶較細的手鐲,就不能硬帶,應把手上套上一個塑料袋再帶上手鐲,非常好帶,也不會把手弄疼,取下也是同樣的方法;
          17.栗子皮難剝,先把外殼剝掉,再把它放進微波爐轉一下,拿出后趁熱一搓,皮就掉了;
          18.插花時,在水里滴上一滴洗潔精,可以維持好幾天;
          19.把核桃放進鍋里蒸十分鐘,取出放在涼水里再砸開,就能取出完整的桃核仁了;
          20.把蝦仁放進碗里,加一點精鹽、食用堿粉,用手抓搓一會兒后用清水浸泡,然后再用清水沖洗,即能使炒出的蝦仁透明如水晶,爽嫩可口;
          21.炒肉時,先把肉用小蘇打水浸泡十幾分鐘,倒掉水,再入味,炒出來會很嫩滑;
          22.將殘茶葉浸入水中數天后,澆在植物根部,可促進植物生長;
          23.把殘茶葉曬干,放到廁所或者溝渠里燃熏,可消除惡臭,具有驅除蚊子蒼蠅的功能;
          24.夾生飯重煮法:可用筷子在飯內扎些直通鍋底的孔,灑入少許黃酒重燜,
          25.若只表面夾生,只要將表層翻到中間再燜即可;
          26.巧除紗窗油膩:將洗衣服、吸煙剩下的煙頭一起放在水里,待溶解后,拿來擦玻璃窗、紗窗,效果真不錯;
          27.只要在珠寶盒中放上一節小小的粉筆,即可讓首飾常保光澤;
          28.桌子、瓶子表面的不干膠痕跡用風油精可以擦拭;
          29.出門時隨時在包里帶一節小的干電池,若裙子帶靜電,就把電池的正極在裙子上面擦幾下即可去掉靜電;
          30.不管是鞋子的哪個地方磨到了你的腳,你就在鞋子磨腳的地方涂一點點白酒,保證就不磨腳了;
          31.亨調蔬菜時,如果必須要焯,焯好菜的水最好盡量利用。如做水餃的菜,焯好的水可適量放在肉餡里,這樣既保證營養,又使水餃餡味美有湯;
          32.夏天足部容易出汗,每天用淡鹽水泡腳可有效應對汗腳;
          33.夏天游泳后曬曬太陽,可防肌膚勞損等疾病發生;
          34.夏天枕頭易受潮滋生霉菌,時常曝曬枕芯有利健康;
          35.多吃薏米小豆粥等潮濕健脾,可防暑濕;
          36.防失眠:睡前少講太多話,忌飲濃茶,睡前勿大用腦,可用熱水加醋洗腳;
          37.金銀花有疏散風濕功效,金銀花水煎取汁涼后與蜂蜜沖調可解暑;
          38.吃過于肥膩的食物后喝茶,能刺激自律神經,促進脂肪代謝;
          39.睡眠不足會變笨,一天需要睡眠八小時,有午睡習慣可延緩衰老;
          40.雙手易變得干燥粗糙,用醋泡手十分鐘可護膚;
          41.夏天擦拭涼席,用滴加了花露水的清水擦拭涼席,可使涼席保持清爽潔凈。當然,擦拭時最好沿著涼席紋路進行,以便花露水滲透到涼席的紋路縫隙,這樣清涼舒適的感覺會更持久;
          42.早餐多食西紅柿、檸檬酸等酸性蔬菜和水果,有益于養肝;
          43.爽身止癢洗頭或洗澡時,在水中加五六滴花露水,能起到很好的清涼除菌、祛痱止癢作用;
          44.葡萄含有睡眠輔助激素,常食有助睡眠;
          45.夏天多喝番茄湯既可獲得養料,又能補充水分,番茄湯應燒好并冷卻后再喝,所含番茄紅素有一定的抗前列腺癌和保護心肌的功效,最適合于男子;吃酸性物質馬上刷牙會損害牙齒健康;
          46.因外傷碰破皮肉時,在傷處涂上牙膏進行消炎、止血,再包扎,作為臨時急救藥,以藥物牙膏效果最為顯著;
          47.將白醋噴灑在菜板上,放上半小時后再洗,不但能殺菌,還能除味;
          48.喝酸奶能解酒后煩躁,酸奶能保護胃黏膜、延緩酒精吸收,并且含鈣豐富,對緩解酒后煩躁尤其有效;
          49.皮鞋包皮放久了發霉時,可用軟布蘸酒精加水(11)溶液擦拭即可;
          50.發生頭痛、頭暈時,可在太陽穴涂上牙膏,因為牙膏含有薄荷腦、丁香油可鎮痛;
          51.蠟燭冷凍二十四小時后,再插到生日蛋糕上,點燃時不會流下燭油;
          52.白色衣褲洗后易泛黃,可取一盆清水,滴上二三滴藍墨水,將洗過的衣褲在浸泡一刻鐘,不必擰干,就放在太陽下曬,即可潔白干凈;
          53.過多食用生蔥蒜會刺激口腔腸胃,不利健康,最好加一點醋再食用;
          54.及時補充水分但應少喝果汁、可樂、雪碧、汽水等飲料,含有較多的糖精和電解質,喝多了會對腸胃產生不良刺激,影響消化和食欲。因此夏天應多喝白開水或淡鹽(糖)水;
          55.每天早晨用豆腐摩擦面部幾分鐘,堅持一個月,面部會變得很滋潤;
          56.調室內溫差不宜超過五度,即使天氣再熱,空調室內溫度也不宜到24度以下
          57.加酶洗衣粉劑放在溫水中需要較長的分解時間才能使洗衣效果更佳;
          58.夏天,人的活動時間變長,出汗多,耗能過大,應適當多吃雞、鴨、瘦肉、魚類、蛋類等營養食品,以滿足人體的代謝需要;
          59.頭痛時把蘋果磨成泥狀涂在紗布上,貼在頭痛處,癥狀可減輕;
          60.皮包上有污漬,可以用棉花蘸風油精擦拭。

          posted @ 2008-10-01 21:42 牛X書記 閱讀(220) | 評論 (0)編輯 收藏

          關鍵字: jbpm jpdl 部署 tomcat mysql 工作流

          相關資料:

           

          jBPM學習筆記(流程設計與控制)

          jBPM學習筆記(框架設計簡介)

           

          系統平臺:

           

          系統環境:

          Windows 2003 | SUN JDK1.6U4 | Tomcat6.0.14 | jbpm-starters-kit-3.1.4 | MySQL 6.0

          主機完整名稱:

                 zsy-aten

          瀏覽器

                 Internet Explorer 6.0

           

          安裝包及相關軟件:

           

          1、  安裝JDKMySQL

          JDK的安裝這里就不多說了,學過Java的人都知道,本實驗安裝的是jdk-6u4版本。安裝完后記得添加JAVA_HOME的環境變量。

          MySQL的安裝不屬于本文的介紹范圍,請參閱相關文檔。本實驗安裝的是MySQL 6.0版本,安裝完后建立的數據庫名為jbpm,創建的用戶名為jbpmuser,密碼為shine

          2、  安裝Tomcat

          下載安裝Tomcat-6.0.16是目前最新版本:http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.exe ;要在JDK安裝之后安裝Tomcat,安裝過程中會自動搜索JRE的目錄,當然也可以選擇其它的JRE,其它默認設置即可。

          3、  安裝Ant

          Ant 是一個編譯工具,使用 jBPM 時必須用它來編譯文件, jBPM 中的很多操作都要用到 Ant ,安裝方法如下:

          1 先下載:http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.0-bin.zip

          2 解壓到 E:\Java\tools\apache-ant-1.7.0 (當然其他目錄也可以);

          3 設置環境變量:ANT_HOME= E:\Java\tools\apache-ant-1.7.0

          4)把 %ANT_HOME%\bin 加入到環境變量 PATH 中。

          4、  安裝jBPM

          下載jBPM-JPDL本為3.2.2http://labs.jboss.com/jbossjbpm/jbpm_downloads/下載jPDL Suite版,這個版本是包含所有的一整套工具,下載后是個壓縮包解壓到 E:\Java\tools :、\jbpm-jpdl-3.2.2 ,目錄下主要包含以下幾個子目錄:

          l  src —— jBPM 的源代碼

          l  config —— jBPMHibernatelog4j的配置文件

          l  db —— 各種數據庫的建表SQL語句

          l  lib —— 依賴的第三方依賴類庫

          l  doc —— API文檔及用戶使用向導

          l  designer —— 輔助開發 jBPM Eclipse 插件,具體在 eclipse子目錄中

          l  server —— 一個已經配置好了的基于 JBoss jBPM 控制臺及示例

          5、  安裝EclipsejBPM開發插件

          Eclipse不是開發 jBPM 必須的工具,但它是對 jBPM 開發很有幫助的工具,特別是 jBPM 提供了一個 Eclipse 插件用來輔助開發 jBPM 。關于 Eclipse 的安裝請參閱相關文檔。本實驗安裝的是MyEclipse6.0集成Eclipse3.3

                 安裝完Eclipse安裝jBPM的開發插件,步驟如下:

          (1)       打開Eclipse選擇菜單“Help->Software Updates->Find and Install”;

          (2)       彈出窗口中選擇“Search for new features to install”,然后點擊“Next >”;如圖

           

          (3)       點擊按扭“New Local Site…”選擇插件目錄,位于designer\ eclipse目錄下,如:E:\Java\tools\jbpm-jpdl-3.2.2\designer\eclipse。選定后點“OK”,如圖

           

          (4)       選中“designer/eclipse”,然后點擊“Finish”,如圖

           

          (5)       然后選擇同意條款,接提示步驟安裝就可以了。

           

                  到此為止需要的所有工具都安裝好了。接下來先體驗一下jBPM工作流。在 JBoss jBPM Starters Kit jbpm-server 目錄是一個已經在JBoss中配置好的了 jBPM 示例,雙擊 jbpm-server 目錄下的 start.bat 文件,啟動 JBoss 服務。打開網頁: http://localhost:8080/ jbpm-console 得到如下頁面:

          這是一個流程控制管理平臺,用右邊的賬號與密碼就可以登錄,這個控制臺包括流程管理,可以部署流程、刪除流程、查看流程圖、管理流程實例等;還有任務管理,工作管理及用戶與用戶組管理。

           

          基于TomcatMySQL的部署:

           

                 現在要把上面演示的例子部署到Tomcat中,并將數據數配置為MySQL

          STEP 1,初始化數據庫

          jBPM 需要數據庫支持, jBPM 會把自己的一個初始化數據存儲到數據庫,同時工作流的數據也是存儲到數據庫中的。 jBPM 使用 Hibernate 作為的存儲層。在E:\Java\tools\jbpm-jpdl-3.2.2\db\目錄下有個jbpm.jpdl.mysql.sql數據庫腳本文件。我們不能直接導入該文件, 會提示有錯誤, 應為該文件格式有問題, 首先打開該文件(推薦UltraEdit), 把前面的 alter table JBPM_XX 語句都刪除(因為我們使用的是新的數據庫,所以需要這些語句, 這個腳本文件是升級3.2的數據庫表結構用的) 然后在每一行前面添加一個分號 不然腳本執行會出錯。這樣就可以用source命令導入了。 導入后, 表結構創建成功。

           STEP 2,準備發布包

                 E:\Java\tools\jbpm-jpdl-3.2.2\deploy 文件夾下 運行ant customize.console.for.tomcat。執行命令后會在 E:\Java\tools\jbpm-jpdl-3.2.2\deploy\customized文件夾下生成一個jbpm-console.war 文件,用WinRaR解壓開,并復制到已安裝Tomcatwebapps目錄下,jbpm還需三個依賴類庫,分別是commons-collections.jarehcache-1.2.3.jarjta.jar,當然還有個MySQL驅動mysql-connector-java-5.0.7-bin.jar,添加這些jar文件 \$CATALINA_HOME\webapps\jbpm-console\WEB-INF\lib目錄下。

           STEP 3,修改Hibernate數據庫配置文件

                 修改\$CATALINA_HOME\webapps\jbpm-console\WEB-INF\classeshibernate.cfg.xml文件。這是Hibernate的數據庫配置文件,要做一些修改,原來內容如下:

          <!--  hibernate dialect -->

            <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>

          <!--  JDBC connection properties (begin) ===

            <property name="hibernate.connection.driver_class">

          org.hsqldb.jdbcDriver</property>

            <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>

            <property name="hibernate.connection.username">sa</property>

            <property name="hibernate.connection.password"></property>

          ==== JDBC connection properties (end) -->

            <property name="hibernate.cache.provider_class">

          org.hibernate.cache.HashtableCacheProvider</property>

          <!--  DataSource properties (begin) -->

            <property name="hibernate.connection.datasource">java:/JbpmDS</property>

          <!--  DataSource properties (end) -->

          修改后如下:

          <!-- hibernate dialect -->

          <property name="hibernate.dialect">

          org.hibernate.dialect.MySQLInnoDBDialect</property>

          <property name="hibernate.connection.driver_class">

          com.mysql.jdbc.Driver</property>

            <property name="hibernate.connection.url">

          jdbc:mysql://localhost:3306/jbpm</property>

            <property name="hibernate.connection.username">jbpmuser</property>

            <property name="hibernate.connection.password">shine</property>

          <property name="hibernate.cache.provider_class">

          org.hibernate.cache.HashtableCacheProvider</property>
           STEP 4,設置Tomcat安全域

                 有兩種方法都可以實現,但摧薦第一種方法。

          方法一:配置一個JDBC Realm,在\$CATALINA_HOME\webapps\jbpm-console\META-INF目錄下新建context.xml文件,內容如下:

          <?xml version="1.0" encoding="UTF-8"?>

          <Context>

          <Realm className="org.apache.catalina.realm.JDBCRealm"

            driverName="com.mysql.jdbc.Driver"

            connectionURL="jdbc:mysql://localhost:3306/jbpm"

            connectionName="jbpmuser"

            connectionPassword="shine"

          userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"

            userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_"

            userCredCol="DISTINCT u.PASSWORD_"

            userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"

            roleNameCol="g.NAME_" />

          </Context>

          方法二:直接修改 /$CATALINA_HOME/conf/tomcat-users.xml文件來設置安全域。為了不和tomcat已有的用戶沖突,這里把 tomcat以前的登陸帳號username="admin" 修改為username="tadmin",修改后的文件如下:

          <?xml version='1.0' encoding='utf-8'?>

          <tomcat-users>

            <role rolename="user"/>

            <role rolename="administrator"/>

            <role rolename="manager"/>

            <role rolename="sales"/>

            <role rolename="hr"/>

            <role rolename="admin"/>

            <role rolename="participant"/>

            <user username="user" password="user" roles="user,sales"/>

            <user username="shipper" password="shipper" roles="user,hr"/>

            <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>

            <user username="tadmin" password="" roles="admin,manager"/>
            <user username="admin" password="admin" roles="admin,user,hr"/>
          </tomcat-users>

           STEP 5,初始化基礎的用戶數據

          MySQL數據庫中執行以下SQL語句,進行初始化用戶信息,如下:

          INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);

          INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);

          INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);

          INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);

          INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);

          INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');

          INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');

          INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');

          INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);

          INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);
           STEP 6,啟動Tomcat服務

          啟動時查看Tomcat的日志,檢查是否正常啟動,未添加所有支持庫或數據庫配置出錯,都會引起啟動失敗。

                 注意:到此為止啟動TomcatJBPM服務就能正常運行了,已經可以在上面發布流程,接著第五步中部署一個jbpm自帶的流程例子。 

           

          STEP 7,發布例子流程

                 打開網頁:http://localhost:8080/jbpm 得到如下頁面就說明已經部署成功:

           

          用右邊的manage賬號登錄,如下圖:

          點擊“Deploy”轉到部署流程頁面,點擊“瀏覽”按扭選擇E:\Java\tools\jbpm-jpdl-3.2.2\examples\websale\target\websale.jpdl文件,名后點擊“Deploy”按扭部署。

          posted @ 2008-09-28 21:36 牛X書記 閱讀(337) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 武定县| 揭阳市| 刚察县| 漳浦县| 浑源县| 抚松县| 平利县| 高州市| 黔东| 林芝县| 花莲市| 梨树县| 河曲县| 沙洋县| 温宿县| 顺平县| 河津市| 保定市| 长春市| 盐山县| 曲麻莱县| 哈尔滨市| 宜昌市| 永定县| 和静县| 西吉县| 平远县| 临朐县| 外汇| 肇庆市| 银川市| 东海县| 定西市| 隆子县| 五常市| 潜江市| 左贡县| 连南| 焉耆| 平江县| 尼勒克县|