如果使用JNDI:
Attributes attrs= new BasicAttributes(true);
attrs.put( "seeAlso", "....");
ctx.modifyAttribute( dn, DirContext.REMOVE_ATTRIBUTE, attrs);
...

解决方案 »

  1.   

    :)首先谢谢这位兄台光顾本贴.你这个方法是用在单个的属性修改上有效.而我的问题是此个属性存在多个值.如:seeAlso这个属性,我保存了多个值.每一个值都对应着一个seeAlso.我遇到的是要修改或删除其中一个seeAlso的值.目前,我的难点是无法定位的修改多个seeAlso属性值中的一个.并将其修改.
      

  2.   

    Attributes attrs= new BasicAttributes(true);            
    Attribute ae = attrs.get("seeAlso");
    Object object = null;
                if(ae!=null){
                  NamingEnumeration ne = ae.getAll();
                  while(ne.hasMore()){
                    object  = ne.next();
                    .....//定位你要删除的值,如果找到
                    break;
                  }
                }
    if(object!=null)
    ae.remove(object);
      

  3.   

    楼上兄台.你的方法我试过.还是难以定位到多个seeAlso之一来修改.
      

  4.   

    不好意思,才看到。
    我的方法可以对指定的属性值进行删除操作,你可以试一下。
    如果需要修改,可以先删除该值,然后再添加新值。如果属性数目不多的话,可以取出Attribute,然后替换需要修改的Attribute Value,再一次将这些属性更新到LDAP中。不过这样对不同的LDAP来说可能会有些问题……