posts - 20,comments - 6,trackbacks - 0

          在webroot下面防止一個js的文件夾。放入dtree.js還有op.js這個兩個文件

          <a href="javascript: d.openAll();">展開所有組織機構(gòu)</a> | <a href="javascript: d.closeAll();">關(guān)閉組織機構(gòu)</a>
          <script type="text/javascript">
          <!--
              d 
          = new dTree('d');
              d.config.folderLinks
          =true;
              
          //id, pid, name, url, title, target, icon, iconOpen, open        
              d.add(0,-1,'組織機構(gòu)','','','');
          <%
              String sql 
          = "select * from tree";
              Connection conn 
          = null;
              
          try{
                  conn 
          = getConnection();
                  ResultSet rst 
          = executeQuery(conn,sql);
                  
          while(rst.next()){
                      
                      System.out.println(
          "---->"+rst.getString("id"));
                      System.out.println(
          "---->"+rst.getString("pid"));
          %>                    
              d.add(
          <%=rst.getString("id")%>,<%=rst.getString("pid")%>,'<%=rst.getString("name")%>','','<%=rst.getString("name")%>','<%=rst.getString("target")%>');
          <%
                  }

                  rst.close();
                  rst 
          = null;
                  conn.close();
                  conn 
          = null;
              }
          catch(Exception ex){
                  out.println(ex.toString());
              }

          %>
              document.write(d);
          //-->
          </script>


          d.add(0,-1,'組織機構(gòu)','','','');------這里的第一個0表示數(shù)據(jù)第一個最 根節(jié)點的 父親節(jié)點的值

          如果是0就是0,如果是null那就寫null

          還有JavaScript的路徑要寫對。
          /Files/spiritahead/js.rar-----里面包含了 要求用到的js
          posted @ 2009-03-23 09:52 Johnhe 閱讀(162) | 評論 (0)編輯 收藏
               摘要:   public class Student implements Comparable {          private String userid;     private ...  閱讀全文
          posted @ 2009-03-10 17:43 Johnhe 閱讀(149) | 評論 (0)編輯 收藏
          package com.corejava;

          public class TestStringSplit {

              
          /**
               * 
          @author 袁曉江
               
          */
              
          public static void main(String[] args) {
                  
                  String s1 
          = ";mb001,mb002;xk001,xk002,xk003,xk004;sts001,sts002,sts003,sts004,sts005;;";
                  String s2 
          = ";mb001,mb002;xk001,xk002,xk003,xk004;sts001,sts002,sts003,sts004,sts005; ;";
                  String s3 
          = ";mb001,mb002;xk001,xk002,xk003,xk004;sts001,sts002,sts003,sts004,sts005;;a";
                  String s4 
          = "wxyb001,wxyb004,wxyb005,wxyb007,wxyb008;;xk002;;";
                  String s5 
          = ";wxyb001,wxyb004,wxyb005,wxyb007,wxyb008;;xk002;;";
                  String s6 
          = ";wxyb001,wxyb004,wxyb005,wxyb007,wxyb008;;xk002;";
                  String s7 
          = ";mb001,mb002;xk001,xk002,xk003,xk004;sts001,sts002,sts003,sts004,sts005;;a";
                  String s8 
          = ";wxyb001,wxyb004,wxyb005,wxyb007,wxyb008;;xk002;a";
                  
                  String[] _s1 
          = s1.split("\\;");
                  
          //-----------------4這個地方打印值是4,倒數(shù)第二個分號和倒數(shù)第一個分號之間是沒有東西的,就不算是么?
                  System.out.println(_s1.length);
                  
                  String[] _s2 
          = s2.split("\\;");
                  
          //-----------------5這個地方打印值是5,倒數(shù)第二個分號和倒數(shù)第一個分號之間是有一個空格
                  System.out.println(_s2.length);
                  
                  String[] _s3 
          = s3.split("\\;");
                  
          //-----------------6這個地方打印值是6,倒數(shù)第二個分號和倒數(shù)第一個分號之間是沒有東西的,但是最后一個分號后面有一個值
                  System.out.println(_s3.length);
                  
                  String[] _s4 
          = s4.split("\\;");
                  
          //-----------------3這個地方打印值是3,倒數(shù)第二個分號和倒數(shù)第一個分號之間是沒有東西的,但是最后一個分號后面有一個值
                  System.out.println(_s4.length);
                  
                  String[] _s5 
          = s5.split("\\;");
                  System.out.println(_s5.length);
          //-----------------4
                  
                  String[] _s6 
          = s6.split("\\;");
                  System.out.println(_s6.length);
          //-----------------4
                  
                  String[] _s7 
          = s7.split("\\;");
                  System.out.println(_s7.length);
          //-----------------6
                  
                  String[] _s8 
          = s8.split("\\;");
                  System.out.println(_s8.length);
          //-----------------5

              }

          }

          為什么啊。不是很明白這里的split方法。
          后來不得已使用substring截取想要的字符串
          posted @ 2009-03-10 17:31 Johnhe 閱讀(1389) | 評論 (3)編輯 收藏
          <html>
              
          <head>
                  
              
          </head>
              
          <body>
                       
          <form>
                       
          <input type=checkbox name='nID' value='1'> 1<br>
                 
          <input type=checkbox name='nID' value='2'> 2<br>
                 
          <input type=checkbox name='nID' value='3'> 3<br>
                
          </form>

              
          </body>
              
              
                  
          <script type="text/javascript" language="javascript">
                          alert(window.document.getElementsByName(
          "nID")[1].value);
                              window.document.getElementsByName(
          "nID")[1].checked = true;
                      
          </script>
                      
                      
          </html>

          從數(shù)據(jù)庫里取值。再勾選。自己點滴記錄吧。很簡單。
          要放在下面 script腳本。

          if(wxybsb.length > 0){
                          
          for(var b=0;b<=wxybsbary.length;b++){
                              
          if(wxybsbary[b]=="wxyb001"){
                                  window.document.getElementsByName(
          "wxybsb")[0].checked = true;
                              }
          javascript里面 循環(huán) 是用var來定義的。不是int 昨天 查了一天 這個小問題。
          記錄下。
          posted @ 2009-03-10 09:41 Johnhe 閱讀(115) | 評論 (0)編輯 收藏

                  String[] test 
          = {"a","b","c"};   
                  StringBuffer testStr 
          = new StringBuffer();
                  
          for(int i =0;i<test.length;i++){
                      testStr.append(test[i]).append(
          ",");
                  }

                  
                  String[] test1 
          = {};   
                  StringBuffer test1Str 
          = new StringBuffer();
                  
                  String test1String 
          = "";
                  
          if(test1.length == 0){
                      test1String 
          = "";
                  }
          else{
                      
          for(int i =0;i<test1.length;i++){
                          test1Str.append(test1[i]).append(
          ",");
                      }

                      test1String 
          = test1Str.substring(0, test1Str.length()-1);
                  }



                  String[] test2 
          = {"e","f","g"};   
                  StringBuffer test2Str 
          = new StringBuffer();
                  
                  String test2String 
          = "";
                  
          if(test2.length == 0){
                      test2String 
          = "";
                  }
          else{
                      
          for(int i =0;i<test2.length;i++){
                          test2Str.append(test2[i]).append(
          ",");
                      }

                      test2String 
          = test2Str.substring(0, test2Str.length()-1);
                  }

                  
                  
                  String testString 
          = testStr.substring(0, testStr.length()-1);
                  String finalString 
          = "";
                  
          if(!testString.equals("")){
                      finalString 
          += testString; 
                  }

                  
          if(!test1String.equals("")){
                      finalString 
          += ";"+test1String; 
                  }

                  
          if(!test2String.equals("")){
                      finalString 
          +=";"+test2String;
                  }

                  System.err.println(finalString);
                  
                  String sql2 
          = "update CDS00COR set C001DWMI = '"+2+"' ,dangerstyle = '"+finalString+"' where corpkey = '"+1+"'";
                  System.out.println(
          "----->"+sql2);
              
          很簡單的。自己記錄下
          posted @ 2009-03-05 14:26 Johnhe 閱讀(161) | 評論 (0)編輯 收藏
          中午碰到的問題自己記錄下。關(guān)于request.getParameterValues("String")

          保存的時候,總是碰到空指針異常

          我當(dāng)時自己知道是request.getParameterValues("String")取到的是空。

          解決辦法就是判斷吧-------------->

          String wxybsbString = "";

          if(request.getParameterValues("wxybsb"== null){
              wxybsbString 
          = "";
          }

          if(request.getParameterValues("wxybsb"!= null){
              String[] wxybsb 
          = request.getParameterValues("wxybsb");
              StringBuffer wxybsbStr 
          = new StringBuffer();
              
          for(int i=0;i<wxybsb.length;i++){
                  wxybsbStr.append(wxybsb[i]).append(
          ",");
              }

              wxybsbString 
          = wxybsbStr.substring(0,wxybsbStr.length()-1);    
          }

          System.out.println(
          "袁曉江"+wxybsbString);

          這樣就不會碰到空指針了.自己記錄下
          posted @ 2009-03-05 13:58 Johnhe 閱讀(3297) | 評論 (3)編輯 收藏
              String[] sid = request.getParameterValues("selectFlag");
                  UserManager.getInstance().deleteUser(sid);
                  
          //for(int i=0; i<sid.length; i++) {
                  
          //    UserManager.getInstance().deleteUser(sid[i]);
                  
          //}
              }
              /**
               * 用數(shù)組實現(xiàn)刪除 sql = select from t_user where user_id in ('b001', 'b002', )
               * 
          @param userIds
               
          */

              
          public void deleteUser(String[] userIds) {
                  StringBuffer sbStr 
          = new StringBuffer();
                  
          for(int i=0; i<userIds.length; i++{
                      sbStr.append(
          "'")
                           .append(userIds[i])
                           .append(
          "',");
                  }

                  String sql 
          = "delete from t_user where user_id in (" + sbStr.substring(0, sbStr.length()-1+ ")";
          System.out.println(
          "sql= " + sql);        
                  Connection conn 
          = null;
                  Statement stmt 
          = null;
                  
          try {
                      conn 
          = DB.getConn();
                      stmt 
          = conn.createStatement();
                      stmt.executeUpdate(sql);
                  }
           catch(SQLException e) {
                      e.printStackTrace();
                  }
           finally {
                      DB.close(stmt);
                      DB.close(conn);
                  }

              }


          posted @ 2009-03-04 17:57 Johnhe 閱讀(136) | 評論 (0)編輯 收藏
               摘要: <html> <head>     <script type="text/javascript">                  functi...  閱讀全文
          posted @ 2009-03-04 16:19 Johnhe 閱讀(411) | 評論 (0)編輯 收藏
        1. ThreadLocal是一個線程隔離(或者說是線程安全)的變量存儲的管理實體(注意:不是存儲用的),它以Java類方式表現(xiàn);
        2. synchronized是Java的一個保留字,只是一個代碼標(biāo)識符,它依靠JVM的鎖機制來實現(xiàn)臨界區(qū)的函數(shù)、變量在CPU運行訪問中的原子性。
        3.  

          理解ThreadLocal中提到的變量副本
              事實上,我們向ThreadLocal中set的變量不是由ThreadLocal來存儲的,而是Thread線程對象自身保存。當(dāng)用戶調(diào)用ThreadLocal對象的set(Object o)時,該方法則通過Thread.currentThread()獲取當(dāng)前線程,將變量存入Thread中的一個Map內(nèi),而Map的Key就是當(dāng)前的ThreadLocal實例。請看源碼,這是最主要的兩個函數(shù),能看出ThreadLocal與Thread的調(diào)用關(guān)系:

          public void set(T value) {   
                  Thread t 
          = Thread.currentThread();   
                  ThreadLocalMap map 
          = getMap(t);   
                  
          if (map != null)   
                      map.set(
          this, value);   
                  
          else  
                      createMap(t, value);   
          }
             
            
          ThreadLocalMap getMap(Thread t) 
          {   
                  
          return t.threadLocals;   
          }
            
          所謂的變量副本,即是對Object Reference(對象引用)的拷貝

          理解Thread和 ThreadLocal對變量的引用關(guān)系
              實際上Thread和ThreadLocal對變量引用關(guān)系就像是坐標(biāo)系中的X軸和Y軸,是從兩個維度上來組織對變量的引用的。
          • 首先說Thread。     我們知道一個ThreadOne的執(zhí)行會貫穿多個方法MethodA、MethodB、MethodC這些方法可能分布于不同的類實例。假設(shè),這些方法分別使用了ThreadLocalA、ThreadLocalB、ThreadLocalC來保存線程本地變量,那么這些變量都存于ThreadOne的Map中,并使用各自的ThreadLocal實例作為key。 因此,可以認為,借助ThreanLocal的set方法,在X軸上,Thread橫向關(guān)聯(lián)同一線程上下文中來自多個Method的變量引用副本。

          接著說ThreadLocal。     一個MethodA中的X變量將被多個線程ThreadOne、ThreadTwo、ThreadThree所訪問。假設(shè)MethodA使用ThreadLocal存儲X,通過set方法,以ThreadLocal作為key值,將不同線程來訪時的不同的變量值引用保存于ThreadOne、ThreadTwo、ThreadThree的各自線程上下文中,確保每個線程有自己的一個變量值。因此,可以認為,ThreadLocal是以Method為Y軸,縱向關(guān)聯(lián)了處于同一方法中的不同線程上的變量。

          posted @ 2009-03-04 16:04 Johnhe 閱讀(328) | 評論 (0)編輯 收藏
          這是pojos:
          /**
           * 
           * 
          @author 袁曉江
           * @hibernate.class table="t_organization"
           *
           
          */

          public class Organization {
              
          /**
               * @hibernate.id
               *         generator-class="native"
               
          */

              
          private int id;
              
          /**
               * @hibernate.property
               
          */

              
          private String name;
              
          /**
               * @hibernate.property
               
          */

              
          private String sn;//編號
              /**
               * @hibernate.property
               
          */

              
          private String description;
              
          /**
               * @hibernate.many-to-one
               *             column="pid" not-found="ignore"
               
          */

              
          private Organization parent;
              
          //invserse=true讓多的一方維護一的那一方。
              /**
               * @hibernate.set inverse="true"
               * @hibernate.key column="pid"
               * @hibernate.one-to-many 
               *                 class="com.oa.model.Organization"
               
          */

              
          private Set<Organization> children;


          附上Organization.hbm.xml的配置文件:
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

          <hibernate-mapping>
            
          <class table="t_organization" name="com.oa.model.Organization">
              
          <id access="field" name="id">
                
          <generator class="native"/>
              
          </id>
              
          <property name="name" access="field"/>
              
          <property name="sn" access="field"/>
              
          <property name="description" access="field"/>
              
              
          <many-to-one not-found="ignore" column="pid" access="field" name="parent"/>
              
              
          <!-- inverse="true"的時候  把每個孩子放到父親里的時候,會不存在pid的值 -->
              
          <set access="field" name="children" inverse="true">
                
          <key column="pid"/>
                
          <one-to-many class="com.oa.model.Organization"/>
              
          </set>
              
            
          </class>
          </hibernate-mapping>

          --------------------------------------------
          這里我放了inverse="true"
          --------------------------------------------

          這里是我的測試方法:
          public class OrgTest2 extends TestCase {
              
          public void testOrg(){
                  Session session 
          = HibernateUtils.getSession();
                  session.beginTransaction();
                  Set set 
          = new HashSet();
                  
                  Organization org2 
          = new Organization();
                  org2.setName(
          "org2");
                  set.add(org2);
                  
                  Organization org3 
          = new Organization();
                  org3.setName(
          "org3");
                  set.add(org3);
          //        
                  Organization org4 = new Organization();
                  org4.setName(
          "org4");
                  set.add(org4);
          //        
                  Organization org1 = new Organization();
                  org1.setName(
          "org1");
                  org1.setChildren(set);
                  
                  session.save(org1);
                  session.save(org2);
                  session.save(org3);
                  session.save(org4);

                  session.beginTransaction().commit();
              }


          存在這樣的一個問題:
          就是org2,org3,org4.不能正確的保存到數(shù)據(jù)庫里。
          也就是org2,org3,org4的pid的值都是空。
          我仔細查了下原因是inverse="true"造成的
          可是我沒有明白到底是怎么回事.?
          有人知道為什么么?
          讓多的這方去維護.
          posted @ 2009-03-04 15:58 Johnhe 閱讀(2090) | 評論 (0)編輯 收藏
          僅列出標(biāo)題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 武陟县| 翁源县| 霸州市| 城固县| 隆德县| 五大连池市| 游戏| 五莲县| 麻栗坡县| 徐汇区| 卢湾区| 滨州市| 洪江市| 双峰县| 聊城市| 德安县| 常熟市| 文安县| 祁连县| 屏边| 江安县| 永定县| 河西区| 波密县| 商河县| 华池县| 望江县| 平凉市| 徐州市| 当雄县| 宁武县| 凤山县| 皋兰县| 绥棱县| 龙门县| 大关县| 固原市| 布尔津县| 阳谷县| 大邑县| 巧家县|