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 阅读(156) | 评论 (0)编辑 收藏
     摘要:   public class Student implements Comparable {          private String userid;     private ...  阅读全文
posted @ 2009-03-10 17:43 Johnhe 阅读(135) | 评论 (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 阅读(1374) | 评论 (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 阅读(108) | 评论 (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 阅读(148) | 评论 (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 阅读(3276) | 评论 (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 阅读(123) | 评论 (0)编辑 收藏
     摘要: <html> <head>     <script type="text/javascript">                  functi...  阅读全文
posted @ 2009-03-04 16:19 Johnhe 阅读(399) | 评论 (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 阅读(316) | 评论 (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 阅读(2083) | 评论 (0)编辑 收藏
    仅列出标题
    共2页: 上一页 1 2