如何将Java对象设置为自定义Control

时间:2015-09-15 21:56:26

标签: java xpages datasource

我有一个带有Method的Java Bean,它返回一个PaymentItem类型的Object

Payments.getItem(viewScope.vsRIndex);

此方法返回ArrayList<PaymentItem>

中的第n个项目

我的主页上有一个按钮,在主页面上显示一个自定义控件,并将viewScope设置为正确的索引值。

<xp:panel id="panelPaymentEntry"
    rendered="#{javascript:(viewScope.vsShowPayment) ? true : false;}">
    <xc:ccCOMPaymentInput></xc:ccCOMPaymentInput>
</xp:panel><!-- panelPaymentEntry -->

我想将ccCOMPaymentInput的dataSource设置为Payments.getItem(viewScope.vsRIndex)

返回的PaymentItem

我将此代码添加到createObject

try{
    Payments.getItem(viewScope.vsRIndex);
}catch(e){
    //do nothing
}

使用var = pItem

但似乎没有创建Object pItem。 我是在正确的轨道上吗?或?????

1 个答案:

答案 0 :(得分:2)

通常,最简单的方法是在自定义控件上创建自定义属性以指定上下文对象 - value是常规选择。所以你有类似的东西:

<xc:ccCOMPaymentInput value="#{javascript:Payments.getItem(viewScope.vsRIndex)}"/>

然后,在控件中,您可以将其引用为compositeData.value。例如:

<xp:inputText value="#{compositeData.value.someTextField}"/>

您可能提到的对象数据源也可以使用,但并不总是必要的。