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

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

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

    posts - 20,comments - 6,trackbacks - 0

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

    <a href="javascript: d.openAll();">展開所有組織機構</a> | <a href="javascript: d.closeAll();">關閉組織機構</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,'組織機構','','','');
    <%
        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,'組織機構','','','');------這里的第一個0表示數據第一個最 根節點的 父親節點的值

    如果是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,倒數第二個分號和倒數第一個分號之間是沒有東西的,就不算是么?
            System.out.println(_s1.length);
            
            String[] _s2 
    = s2.split("\\;");
            
    //-----------------5這個地方打印值是5,倒數第二個分號和倒數第一個分號之間是有一個空格
            System.out.println(_s2.length);
            
            String[] _s3 
    = s3.split("\\;");
            
    //-----------------6這個地方打印值是6,倒數第二個分號和倒數第一個分號之間是沒有東西的,但是最后一個分號后面有一個值
            System.out.println(_s3.length);
            
            String[] _s4 
    = s4.split("\\;");
            
    //-----------------3這個地方打印值是3,倒數第二個分號和倒數第一個分號之間是沒有東西的,但是最后一個分號后面有一個值
            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>

    從數據庫里取值。再勾選。自己點滴記錄吧。很簡單。
    要放在下面 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里面 循環 是用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)編輯 收藏
    中午碰到的問題自己記錄下。關于request.getParameterValues("String")

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

    我當時自己知道是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]);
            
    //}
        }
        /**
         * 用數組實現刪除 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)編輯 收藏
  • ThreadLocal是一個線程隔離(或者說是線程安全)的變量存儲的管理實體(注意:不是存儲用的),它以Java類方式表現;
  • synchronized是Java的一個保留字,只是一個代碼標識符,它依靠JVM的鎖機制來實現臨界區的函數、變量在CPU運行訪問中的原子性。
  •  

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

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

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

    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.不能正確的保存到數據庫里。
    也就是org2,org3,org4的pid的值都是空。
    我仔細查了下原因是inverse="true"造成的
    可是我沒有明白到底是怎么回事.?
    有人知道為什么么?
    讓多的這方去維護.
    posted @ 2009-03-04 15:58 Johnhe 閱讀(2090) | 評論 (0)編輯 收藏
    僅列出標題
    共2頁: 上一頁 1 2 
    主站蜘蛛池模板: 久久免费精彩视频| 免费v片在线观看视频网站| 国产成A人亚洲精V品无码| 中文字幕在线免费观看| 国产精品亚洲一区二区麻豆| 亚洲精品在线视频| 最近2019免费中文字幕6| 亚洲人成色99999在线观看| 亚洲一区无码中文字幕| 午夜福利不卡片在线播放免费| 高潮毛片无遮挡高清免费| 亚洲AV无码成人精品区在线观看| 国产精品久久久久久久久久免费| 亚洲黄片手机免费观看| 亚洲乱码一二三四区国产| 国产国拍亚洲精品福利| 4399好看日本在线电影免费| 无码AV动漫精品一区二区免费| 亚洲老熟女@TubeumTV| 亚洲第一黄色网址| 日本免费网站视频www区| 一本大道一卡二大卡三卡免费 | 亚欧免费视频一区二区三区| 亚洲AV无码AV日韩AV网站| 亚洲影院在线观看| 亚洲精品国产V片在线观看| 国产精品无码免费播放| 污污网站免费观看| h视频免费高清在线观看| 亚洲精品第一国产综合亚AV| 久久久亚洲欧洲日产国码是AV| 亚洲综合精品网站在线观看| 毛片a级毛片免费观看品善网| 亚洲视频免费在线观看| 一区二区三区AV高清免费波多| 亚洲综合无码一区二区痴汉| 亚洲一区二区在线视频| 亚洲线精品一区二区三区| 亚洲AV无码成H人在线观看| 天天拍拍天天爽免费视频| 日本最新免费网站|