我是Java的新手,所以请多多包涵。我有一小段代码
检查currentNode是否具有“ fileReference”属性并返回其值。
除非我的null检查似乎没有工作,否则,因为fileReference中没有内容
我得到一个错误。如果存在对fileReference的引用,则可以正常工作。这是错误:

Caused by: javax.jcr.PathNotFoundException: fileReference


这是我的代码:

    if(currentNode != null){
        NodeIterator checkNode = currentNode.getNodes();

        while (checkNode.hasNext()) {
            Node imageNode = checkNode.nextNode();
            printNodeTitle = imageNode.getProperty("fileReference").getString();
        }
    }

       public String getImageNode() { (printNodeTitle != null) ? return printNodeTitle : return ""; }


任何帮助是极大的赞赏!

最佳答案

我非常有信心fileReference实际上是一个属性,而不是一个单独的节点(因为您正在调用属性)。由于您知道要获取的属性的名称,因此建议您通过一小步检查是否存在直接获取它。

if(currentNode != null){
    NodeIterator checkNode = currentNode.getNodes();

    while (checkNode.hasNext()) {
        Node imageNode = checkNode.nextNode();
        if(imageNode.hasProperty("fileReference")){
            Property fileReferenceProp = imageNode.getProperty("fileReference");
            printNodeTitle = fileReferenceProp.getString();
        }
    }
}


我假设您在其他地方处理可能的存储库异常

10-08 13:24