如何从XPages的radiogroup中的sessionscope获取值

如何从XPages的radiogroup中的sessionscope获取值,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我们有一个XPages应用程序,它是在Notes关键字文档的帮助下设置的。这些关键字通过会话范围提供。范围变量的一个示例是: 名称范围:关键客户 价值观: 违约 价值观[是,否] 对于我使用LinkedHashSet来保证插入顺序的值: var values:java.util.LinkedHashSet = new java.util.LinkedHashSet(); var iterator = keyValues.iterator();

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

名称范围:关键客户

价值观:

违约 价值观[是,否]

对于我使用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控件,我希望读取scope变量并返回值条目的值

我必须怎么做

以下是我尝试过的:

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
这对我很有用:

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)

运行代码时是否出错?你好,汤姆,谢谢你的帮助!在您的示例中,您使用的是一个数组作为值。在我的代码中,我使用linkedhashset来保证插入顺序(我已经更新了代码),并收到以下错误消息:java.lang.String与javax.faces.model.SelectItem不兼容。也许控件只能与arraylist一起使用?嗨,Malin,我使用LinkedHashSet作为值更新了我的答案。关键是将LinkedHashSet作为数组返回。