【问题标题】:How to get value from sessionscope in radiogroup for XPages如何从 XPage 的 radiogroup 中的 sessionscope 中获取价值
【发布时间】:2018-11-05 22:31:32
【问题描述】:

我们有一个 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

【问题讨论】:

  • 运行代码时是否报错?

标签: xpages xpages-ssjs


【解决方案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)

【讨论】:

  • 您好汤姆,感谢您帮助我!在您的示例中,您使用数组作为值。在我的代码中,我使用linkedhashset 来保证插入顺序(我已经更新了我的代码)并且我收到以下错误消息: java.lang.String incompatible with javax.faces.model.SelectItem 。也许控件只能与数组列表一起使用?
  • 嗨 Malin,我使用 LinkedHashSet 作为值更新了我的答案。重点是将LinkedHashSet作为数组返回。
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
相关资源
最近更新 更多