如何将 Java 对象设置为自定义控件上的数据源
How to set a Java Object as the datasource on a custom Control
我有一个 Java Bean,其方法是 returns PaymentItem
类型的对象
Payments.getItem(viewScope.vsRIndex);
此方法 returns ArrayList<PaymentItem>
中的第 n 个项目
我的主页上有一个按钮,它在主页上的那个按钮上呈现一个自定义控件,并将 viewScope 设置为正确的索引值。
<xp:panel id="panelPaymentEntry"
rendered="#{javascript:(viewScope.vsShowPayment) ? true : false;}">
<xc:ccCOMPaymentInput></xc:ccCOMPaymentInput>
</xp:panel><!-- panelPaymentEntry -->
我想将 ccCOMPaymentInput 的数据源设置为 Payments.getItem(viewScope.vsRIndex)
返回的 PaymentItem
我将此代码添加到 createObject
try{
Payments.getItem(viewScope.vsRIndex);
}catch(e){
//do nothing
}
与 var = pItem
但似乎没有创建 Object pItem。
我在正确的轨道上吗?或者 ??????
通常,最干净的方法是在自定义控件上创建自定义 属性 以指定上下文对象 - value
是常规选择。所以你会有这样的东西:
<xc:ccCOMPaymentInput value="#{javascript:Payments.getItem(viewScope.vsRIndex)}"/>
然后,在控件中,您可以将其引用为 compositeData.value
。例如:
<xp:inputText value="#{compositeData.value.someTextField}"/>
您可能指的对象数据源也可以工作,但并不总是必需的。
我有一个 Java Bean,其方法是 returns PaymentItem
类型的对象Payments.getItem(viewScope.vsRIndex);
此方法 returns ArrayList<PaymentItem>
我的主页上有一个按钮,它在主页上的那个按钮上呈现一个自定义控件,并将 viewScope 设置为正确的索引值。
<xp:panel id="panelPaymentEntry"
rendered="#{javascript:(viewScope.vsShowPayment) ? true : false;}">
<xc:ccCOMPaymentInput></xc:ccCOMPaymentInput>
</xp:panel><!-- panelPaymentEntry -->
我想将 ccCOMPaymentInput 的数据源设置为 Payments.getItem(viewScope.vsRIndex)
我将此代码添加到 createObject
try{
Payments.getItem(viewScope.vsRIndex);
}catch(e){
//do nothing
}
与 var = pItem
但似乎没有创建 Object pItem。 我在正确的轨道上吗?或者 ??????
通常,最干净的方法是在自定义控件上创建自定义 属性 以指定上下文对象 - value
是常规选择。所以你会有这样的东西:
<xc:ccCOMPaymentInput value="#{javascript:Payments.getItem(viewScope.vsRIndex)}"/>
然后,在控件中,您可以将其引用为 compositeData.value
。例如:
<xp:inputText value="#{compositeData.value.someTextField}"/>
您可能指的对象数据源也可以工作,但并不总是必需的。