如何从Radiogroup for XPages中的sessionscope获得价值

时间:2018-11-02 08:13:45

标签: xpages xpages-ssjs

我们有一个XPages应用程序,该应用程序是在Notes关键字文档的帮助下设置的。这些关键字可通过sessionScopes使用。范围变量的一个示例是:

名称范围:key_customer_sv

值:

默认 值[是,否]

对于这些值,我使用LinkedHashSet来保证插入顺序:

var values:java.util.LinkedHashSet = new java.util.LinkedHashSet();
                        var iterator = keyValues.iterator();                         
                        while (iterator.hasNext()) {
                            var itemvalue = iterator.next();
                            values.add(itemvalue);
                        }                       
                        map.put("values",values);   

这些值以HashMap的形式存储,并且对名称是默认值和值。

对于我的xp:radioGroup控件,我想读取范围变量并返回值条目的值。

我该怎么做?

这是我尝试过的:

var language = "_" + context.getLocaleString();
var languageDefault = "_" + "sv";
var key = "customer";
var values;
try{
    values = sessionScope.get("key_" + key + language )['values'];
}catch(e){
    print(e);
}
if (null == values){
    values = sessionScope.get("key_" + key + language Default)['values'];
}
return values

1 个答案:

答案 0 :(得分:1)

这对我有用:

var language = "_" + context.getLocaleString();
var languageDefault = "_" + "sv";
var key = "customer";
var values;
try{
    values = sessionScope.get("key_" + key + language ).get('values');
}catch(e){
    print(e);
}
if (null == values){
    values = sessionScope.get("key_" + key + languageDefault).get('values');
}
return values==null?"":values.toArray();

通过使用.get('values')而不是['values']获取值很重要,因为它返回的内容有所不同。

我通过用以下代码填充sessionScope来进行测试:

var key_customer_sv:java.util.HashMap = new java.util.HashMap();
var values:java.util.LinkedHashSet = new java.util.LinkedHashSet();
values.add("Yes");
values.add("No");                       
key_customer_sv.put("values",values);
key_customer_sv.put("default", "Yes");
sessionScope.put("key_customer_sv", key_customer_sv)