如何计算重复控件的会话范围变量的变量名称

时间:2017-12-07 10:11:14

标签: xpages xpages-ssjs

我想计算一个sessionScope变量的变量名,我用它作为xp:repeat控件的数据绑定源。

我注意到计算变量名的钻石不在那里。也许通过另一种方式可能吗?

2 个答案:

答案 0 :(得分:0)

理论上它应该是。范围变量是地图。 dominoDocument数据源以类似的方式作为对象运行 - document1.myFielddocument1.getValue("myField")document1.setValue("myField")运行。我知道有一些方法可以绑定到计算字段名称,我想在自定义控件中,例如,获取传入的字段名称将是document1[#{compositeData.passedField)]。因此,在理论上,绑定到范围变量sessionScope[#{myComputedVariable}]的类似过程应该起作用。

答案 1 :(得分:0)

有两种方法,一种方法优于另一种方法,但另一种方法强制要求你,以防你必须连接字符串以获得最终变量名称(因为在我看来,因为你说的是​​重复控制):

EL方法

<xp:repeat value="#{something}" var="whatever">
    <xp:text value="#{sessionScope[whatever]}" />

SSJS方法

<xp:repeat value="#{something}" var="whatever">
    <xp:text value="#{javascript:sessionScope.get('somePrefix' + whatever)}" />

第二种方法的问题在于,如果它是输入字段,则无法对其进行正确的数据绑定,仅用于显示。

如果您需要正确的数据绑定,那么我建议,虽然不优雅 - 但我没有完整的图片,一个连接您的字符串的支持bean,以便它可以通过EL准备好使用。