将重复控件绑定到会话或视图范围变量

Binding a Repeat Control to either a session or view scope variable

我有一个已绑定到 sessionScope 变量的重复控件,它工作正常。我试图通过将控件动态绑定到 viewScope 或 sessionScope 变量来使控件更具可扩展性。我已将自定义 属性 添加到包含重复项的控件中,并将其称为范围。问题是如何将重复绑定到正确的 Scoped 变量。 在 Repeat 控件上,我选择了 JavaScript 作为绑定方法并添加了以下代码:

switch (compositeData.scope){
    case 'ss' :
        return sessionScope.ssCat1
        break;
    case 'vs' :
        return viewScope.vsCat1
        break
} 

我已经检查过,在我的例子中 compositeData.scope = 'ss' 和 sessionScope.ssCat1 包含正确的数据。

我是不是遗漏了什么或者这可能吗?

通过自定义参数在自定义控件中注入重复值不是更好的方法吗 将其命名为 repeat 或 object as 属性 类型的其他名称。

在您的自定义控件中,您有

<xp:repeat id="repeat1" rows="30"
      var="rowData" style="width:400px" value="#{compositeData.repeat}">
//do what ever you want with a rowData
</xp:repeat>