如何将组件的值设置为数字

How to set the value of a component to a number

我在重复控件上使用 'first' 的值来了解我在哪里

sessionScope.ssCat1First = getComponent("repeatCat1").first;

所以我可以将起始索引值设置为 ssCat1First 并且我在正确的页面上。但是,在某些情况下,我需要先在组件上重置

我试过了

getComponent("repeatCat1").first.setValue(0);

但我收到错误消息“在 'Number [JavaScript Object]' 类型的对象上调用方法 'setValue(number)' 时出错” 所以看起来我有 0 需要一个 Java 对象?如果是这样我该怎么做?

使用 setFirst():

getComponent("repeatCat1").setFirst(0);

您从 JavaDoc Package com.ibm.xsp.component.xp.

获得了 Xsp 组件的所有属性和方法的列表

如何找到控件的组件 class?只需使用按钮将对象的 class 名称打印到服务器控制台。对于你的 repeat control 你会写的例子:

<xp:button
    value="Show class"
    id="button2">
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:print(getComponent("repeatCat1"))}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>

控制台会显示类似
的内容 HTTP JVM: com.ibm.xsp.component.xp.XspDataIterator@20f620f6

现在,在 JavaDoc 中查找 class XspDataIterator。这个 class 没有方法 getFirst()setFirst() 但父 class com.ibm.xsp.component.UIDataIterator 有:

请记住 getComponent("repeatCat1").firstgetComponent("repeatCat1").getFirst() 的表达式语言版本。这才是真正被执行的。

这同样适用于 寻呼机。您会查找 XspPager,然后查找 parents class com.ibm.xsp.component.UIPager。在那里你可以看到如何设置寻呼机的页码: