【问题标题】:How to display object values in text fields during on dropdown item selection如何在下拉项目选择期间在文本字段中显示对象值
【发布时间】:2012-12-10 15:43:08
【问题描述】:

下拉菜单:

<h:outputLabel value="#{build.approvedRecons}" for="reconSearchFunctionalAreaID"></h:outputLabel>
    <p:selectOneMenu style="width:200px;" id="reconSearchFunctionalAreaID" >
        <f:selectItem itemValue="-Select One-" itemLabel="-Select One-" />
         <f:selectItems value="#{approvedReconDetailsBean.reconItemList}"/>
          <p:ajax update="@form" listener="#{approvedReconDetailsBean.reconDetailsDisplay}" event="onChange"></p:ajax>
    </p:selectOneMenu>............<h:outputLabel for="reconNameID" value="#{build.appvReconName}" />
                 <h:outputText value="#{build.colon}" />
                 <h:outputText value="#{approvedReconDetailsBean.reconCtxVO.reconID}" id="reconNameID" />

听者:

public void reconDetailsDisplay(SelectEvent event){

    ReconContextVO tempReconContextVO = ((ReconContextVO) event.getObject());
    ReconContextVO reconCtxVO1 = new ReconContextVO(); 
    reconCtxVO1.setReconID(tempReconContextVO.getReconID());
    reconCtxVO1.setReconName(tempReconContextVO.getReconName());
    reconCtxVO1.setTxnProcessingType(tempReconContextVO.getTxnProcessingType());
    reconCtxVO1.setTxnProcessingType(tempReconContextVO.getTxnProcessingType());
    this.setReconCtxVO(reconCtxVO1);
}

reconItemList 的类型为 List&lt;ReconContextVO&gt;。在我的 bean 中,我将 reconsList 转换为 reconItemListReconContextVO 包含

private String reconName; 
private String txnProcessingType; 
private String txnProcessingLevel; 
// and their setter & getters

现在我想在下拉列表更改时在文本字段中显示reconNametxnProcessingTypetxnProcessingLevel。我像上面的代码一样编写了 ajax listner 方法。我不明白。

【问题讨论】:

    标签: ajax jsf object selectonemenu


    【解决方案1】:

    您的具体问题是由&lt;p:ajax&gt; 的错误使用引起的。 event="onChange" 无效。它应该是event="change"(这已经是默认值,因此可以安全地省略)。监听方法参数也无效,应该是AjaxBehaviorEvent

    但是,毕竟,您不需要为此使用侦听器方法。您可以将 &lt;p:selectOneMenu value&gt; 直接绑定到 bean 属性。

    <p:selectOneMenu value="#{approvedReconDetailsBean.reconCtxVO}">
        <f:selectItem itemValue="-Select One-" itemLabel="-Select One-" noSelectionOption="true" />
        <f:selectItems value="#{approvedReconDetailsBean.reconItemList}" />
        <p:ajax update="reconDetails" />
    </p:selectOneMenu>
    
    <h:panelGroup id="reconDetails">
        <h:outputText value="#{approvedReconDetailsBean.reconCtxVO.reconID}" />
        <h:outputText value="#{approvedReconDetailsBean.reconCtxVO.reconName}" />
        <h:outputText value="#{approvedReconDetailsBean.reconCtxVO.txtProcessingType}" />
        <h:outputText value="#{approvedReconDetailsBean.reconCtxVO.txnProcessingLevel}" />
    </h:panelGroup>
    

    请注意,我假设您已经为该对象创建了一个Converter,并且它的equals() 已正确实现。如果没有正确完成,您应该会收到转换/验证错误。

    【讨论】:

    • 不客气。由于您是新来的,所以不要忘记在回答(最)有助于解决具体问题时将其标记为已接受。另见How does accepting an answer work?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2020-01-08
    相关资源
    最近更新 更多