XPages:@DbName()从数据库文件路径中删除斜杠

时间:2013-05-15 15:06:54

标签: xpages

我正在使用@DbName()来获取notes数据库的名称和文件路径。不幸的是,文件路径和名称作为一个字符串返回而没有斜杠。例如,如果文件路径为“Dir1 / Dir2 / dbname.nsf”,则返回为“Dir1Dir2dbname.nsf”。有没有办法获得包含斜杠的文件路径?

3 个答案:

答案 0 :(得分:3)

@DBName()函数调用应该用作列表数组。以下示例详细说明了如何使用以及获得的输出。

<强> CODE

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:table><xp:tr>
    <xp:td>
        <xp:label value="Field 1 (@DbName as a string) " id="label1">
        </xp:label>
    </xp:td><xp:td>
        <xp:text escape="true" id="computedField1" value="#{javascript:return @DbName();}">
        </xp:text>
    </xp:td>
    </xp:tr><xp:tr>
    <xp:td>
        <xp:label value="Field 2 (@DbName used as list)" id="label2">
        </xp:label>
    </xp:td><xp:td>
        <xp:text escape="true" id="computedField2">
        <xp:this.value><![CDATA[#{javascript:var database = @Subset(@DbName(), -1);
            var server = @Name("[CN]", @Subset(@DbName(), 1));
            return database + " on " + server
            }]]></xp:this.value>
        </xp:text>
    </xp:td></xp:tr>
    </xp:table>
</xp:view>

<强>输出

Field 1 (@DbName as a string)   CN=testserver/O=testorg,subdir\Test.nsf
Field 2 (@DbName used as list)  subdir\Test.nsf on testserver

如果您没有收到这些结果,请使用示例代码更新您的问题。

要检查的另一件事是,“\”是否在代码中被转换为转义字符。

答案 1 :(得分:2)

我经历过类似的事情,修复确实要使用以下内容来确保反斜杠被转义(而不是被解释为转义字符):

escape(database.getFilePath())

答案 2 :(得分:1)

您是将它放在计算字段中还是在某个公式中使用它? 这是另一种方式。

database.getFilePath()

那应该给你Dir / dbname