Xpages:如何将字符串存储为文件中的资源包

Xpages: how to store a string as a resource bundle in files

我的菜单由数据结构驱动,我想将其作为文件存储在数据库的资源中。但是,我似乎无法将多行字符串存储(或不知道如何存储)作为文件资源。

我的字符串将如下所示:

[
 {
   "mnuNme": "by Author",
   "mnuTyp": "1",
   "mnuTrg": "xpNavigator3"
   },
   {
   "mnuNme": "by Location",
   "mnuTyp": "1",
   "mnuTrg": "xpView02"
  }
] 

有没有办法将其存储为 属性。

为什么一定要多行?看来您正在尝试存储 JSON - 将其缩小,并存储为一行。在其他地方保留一个可编辑的版本作为您的主人,并在您想要部署时重新缩小。

但是,如果你真的想这样做,我认为正确的语法是:

menuStructure=[ \
 { \
   "mnuNme": "by Author",\
   "mnuTyp": "1",\
   "mnuTrg": "xpNavigator3"\
   },\
   {\
   "mnuNme": "by Location",\
   "mnuTyp": "1",\
   "mnuTrg": "xpView02"\
  }\
]

您正在寻找一个地方来存储和维护菜单作为 JSON 数据。

您可以为此使用服务器端 JavaScript 库。
将您的菜单定义分配给一个变量。 这样你就包含了一个语法控制,你不需要解析 JSON 字符串,因为它已经是 JavaScript array/object.

示例:

服务器端JavaScript库"menu.jss":

var menu = [
            {
               "mnuNme": "by Author",
               "mnuTyp": "1",
               "mnuTrg": "xpNavigator3"
            },
            {
               "mnuNme": "by Location",
               "mnuTyp": "1",
               "mnuTrg": "xpView02"
            }
           ];

XPage

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:this.resources>
        <xp:script
            src="/menu"
            clientSide="false">
        </xp:script>
    </xp:this.resources>
    <xp:repeat
        id="repeat1"
        rows="0"
        var="entry"
        value="#{javascript:menu}">
        <xp:text
            escape="true"
            id="computedField1"
            value="#{entry.mnuNme}">
        </xp:text>
        <br />
    </xp:repeat>
</xp:view>