文档

Java™教程
隐藏目录
读取属性
路径:Java命名和目录接口
课程:命名和目录操作

读取属性

要从目录中读取对象的属性,使用 DirContext.getAttributes() 方法,并传递要获取属性的对象的名称。假设命名服务中的对象名称为 "cn=Ted Geisel, ou=People"。要检索此对象的属性,您需要编写类似以下示例的代码

Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People");

然后,您可以按以下方式打印此结果的内容。

for (NamingEnumeration ae = answer.getAll(); ae.hasMore();) {
    Attribute attr = (Attribute)ae.next();
    System.out.println("attribute: " + attr.getID());
    /* 打印每个值 */
    for (NamingEnumeration e = attr.getAll(); e.hasMore();
         System.out.println("value: " + e.next()))
        ;
}

这将产生以下输出。

# java GetattrsAll
attribute: sn
value: Geisel
attribute: objectclass
value: top
value: person
value: organizationalPerson
value: inetOrgPerson
attribute: jpegphoto
value: [B@1dacd78b
attribute: mail
value: Ted.Geisel@JNDITutorial.example.com
attribute: facsimiletelephonenumber
value: +1 408 555 2329
attribute: telephonenumber
value: +1 408 555 5252
attribute: cn
value: Ted Geisel

返回选定的属性

要读取选择的属性子集,您需要提供一个字符串数组,其中包含要检索的属性的属性标识符。

// 指定要返回的属性的标识符
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};

// 获取所请求的属性
Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People", attrIDs);

此示例 请求获取对象 "cn=Ted Geisel, ou=People""sn""telephonenumber""golfhandicap""mail" 属性。此对象具有除 "golfhandicap" 属性之外的所有属性,因此答案中返回了三个属性。以下是示例的输出:

# java Getattrs
attribute: sn
value: Geisel
attribute: mail
value: Ted.Geisel@JNDITutorial.example.com
attribute: telephonenumber
value: +1 408 555 5252

上一页:属性名称
下一页:修改属性