Xpages 仅使用SSJS填充Dojo组合框,并包含单独的itemLabel和itemValue

Xpages 仅使用SSJS填充Dojo组合框,并包含单独的itemLabel和itemValue,xpages,Xpages,我正在支持我的公司最古老的也是第一个XPages应用程序。该应用程序不使用java实现任何功能,而是使用SSJS实现所有功能。我不希望仅为这一项任务就开始使用JavaBean 这个问题涉及java的方式来做我需要的事情:(虽然我知道这是更好的方式,但我正在努力坚持已经建立的模式) 该应用程序将所有关键字加载到applicationScope中,然后在需要时使用它们。我正在尝试加载显示值,并在存储时返回关联的值。这与多年来传统纸币的表现相似 我更改了applicationScope值以将值存储在管

我正在支持我的公司最古老的也是第一个XPages应用程序。该应用程序不使用java实现任何功能,而是使用SSJS实现所有功能。我不希望仅为这一项任务就开始使用JavaBean

这个问题涉及java的方式来做我需要的事情:(虽然我知道这是更好的方式,但我正在努力坚持已经建立的模式)

该应用程序将所有关键字加载到applicationScope中,然后在需要时使用它们。我正在尝试加载显示值,并在存储时返回关联的值。这与多年来传统纸币的表现相似

我更改了applicationScope值以将值存储在管道(|)之后,但我还没有弄清楚如何使用SSJS使用该值。我开始怀疑这是否可能


我尝试使用核心组合框控件而不是Dojo组合框来生成所需的代码。看起来您不能对标签和值使用单独的“公式项”。除了使用java集合之外,是否有人提出了解决方案。

您可以在SSJS中使用java解决方案。您只需要
var
而不是
new
引用中的初始类名和完整类名,因此java.util.ArrayList而不是ArrayList,javax.faces.model.SelectItem而不是SelectItem。看这里

因此,您链接到的StackOverflow问题中转换为SSJS的代码应该是:

var options = new java.util.ArrayList();

var option = new javax.faces.model.SelectItem();
option.setLabel("Here's a label");
option.setValue("Here's a value");

options.add(option);

return options;

您可以在SSJS中使用Java解决方案。您只需要
var
而不是
new
引用中的初始类名和完整类名,因此java.util.ArrayList而不是ArrayList,javax.faces.model.SelectItem而不是SelectItem。看这里

因此,您链接到的StackOverflow问题中转换为SSJS的代码应该是:

var options = new java.util.ArrayList();

var option = new javax.faces.model.SelectItem();
option.setLabel("Here's a label");
option.setValue("Here's a value");

options.add(option);

return options;

您可以在SSJS中使用Java解决方案。您只需要
var
而不是
new
引用中的初始类名和完整类名,因此java.util.ArrayList而不是ArrayList,javax.faces.model.SelectItem而不是SelectItem。看这里

因此,您链接到的StackOverflow问题中转换为SSJS的代码应该是:

var options = new java.util.ArrayList();

var option = new javax.faces.model.SelectItem();
option.setLabel("Here's a label");
option.setValue("Here's a value");

options.add(option);

return options;

您可以在SSJS中使用Java解决方案。您只需要
var
而不是
new
引用中的初始类名和完整类名,因此java.util.ArrayList而不是ArrayList,javax.faces.model.SelectItem而不是SelectItem。看这里

因此,您链接到的StackOverflow问题中转换为SSJS的代码应该是:

var options = new java.util.ArrayList();

var option = new javax.faces.model.SelectItem();
option.setLabel("Here's a label");
option.setValue("Here's a value");

options.add(option);

return options;

您可以在SSJS中使用Java class
javax.faces.model.SelectItem
来填充selectItems:

    <xp:comboBox id="comboBox1">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:
                var item1 = new javax.faces.model.SelectItem("Value1", "Label1");
                var item2 = new javax.faces.model.SelectItem("Value2", "Label2");
                [item1, item2]
            }]]></xp:this.value>
        </xp:selectItems>
        ...
    </xp:comboBox>

...

您可以在SSJS中使用Java类
javax.faces.model.SelectItem来填充selectItems:

    <xp:comboBox id="comboBox1">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:
                var item1 = new javax.faces.model.SelectItem("Value1", "Label1");
                var item2 = new javax.faces.model.SelectItem("Value2", "Label2");
                [item1, item2]
            }]]></xp:this.value>
        </xp:selectItems>
        ...
    </xp:comboBox>

...

您可以在SSJS中使用Java类
javax.faces.model.SelectItem来填充selectItems:

    <xp:comboBox id="comboBox1">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:
                var item1 = new javax.faces.model.SelectItem("Value1", "Label1");
                var item2 = new javax.faces.model.SelectItem("Value2", "Label2");
                [item1, item2]
            }]]></xp:this.value>
        </xp:selectItems>
        ...
    </xp:comboBox>

...

您可以在SSJS中使用Java类
javax.faces.model.SelectItem来填充selectItems:

    <xp:comboBox id="comboBox1">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:
                var item1 = new javax.faces.model.SelectItem("Value1", "Label1");
                var item2 = new javax.faces.model.SelectItem("Value2", "Label2");
                [item1, item2]
            }]]></xp:this.value>
        </xp:selectItems>
        ...
    </xp:comboBox>

...

也许我没有回答你的问题,因为我的回答相当简单,但要使用JavaScript计算标签和值,请创建一个字符串的JavaScript数组,其中每个字符串的格式为“Label | Value”(垂直条是Domino字段中的分隔符)


Howard

也许我没有回答你的问题,因为我的回答相当简单,但要使用JavaScript计算标签和值,请创建一个JavaScript字符串数组,其中每个字符串的格式为“Label | Value”(垂直条是Domino字段中的分隔符)


Howard

也许我没有回答你的问题,因为我的回答相当简单,但要使用JavaScript计算标签和值,请创建一个JavaScript字符串数组,其中每个字符串的格式为“Label | Value”(垂直条是Domino字段中的分隔符)


Howard

也许我没有回答你的问题,因为我的回答相当简单,但要使用JavaScript计算标签和值,请创建一个JavaScript字符串数组,其中每个字符串的格式为“Label | Value”(垂直条是Domino字段中的分隔符)


霍华德(Howard)

之所以选择这个答案,是因为:构建集合,添加到集合中,然后传递整个集合符合我从应用程序范围中阅读的方式。感谢您给出这个答案,因为:构建集合,添加到集合中,然后传递整个集合符合我从应用程序范围阅读的方式。感谢您给出这个答案,因为:构建集合,添加到集合中,然后传递整个集合符合我从应用程序范围阅读的方式。感谢您给出这个答案,因为:构建集合,添加到集合中,然后传递整个集合符合我从应用程序范围阅读的方式。谢谢你,保罗