Primefaces 自动完成+下拉列表+基本面

Primefaces 自动完成+下拉列表+基本面,primefaces,autocomplete,Primefaces,Autocomplete,对primefaces来说非常陌生,所以如果很简单,请原谅我 因为我想在更改下拉列表中的值时清除自动完成文本框 在我的xhtml页面中,当我从下拉列表中选择company时,将出现与该国家相关联的银行。当我接管银行时,和该银行相关联的分支机构将进入下一个自动完成字段。这很好 但当我进入下一个国家时,自动完成字段并没有被清除 请帮我解决这个问题 此分区是国家/地区的下拉列表 <div class="row" > <div class="grid4 bordered-box

对primefaces来说非常陌生,所以如果很简单,请原谅我

因为我想在更改下拉列表中的值时清除自动完成文本框

在我的xhtml页面中,当我从下拉列表中选择company时,将出现与该国家相关联的银行。当我接管银行时,和该银行相关联的分支机构将进入下一个自动完成字段。这很好

但当我进入下一个国家时,自动完成字段并没有被清除

请帮我解决这个问题

此分区是国家/地区的下拉列表

<div class="row" >
    <div class="grid4 bordered-box">
        <p:outputLabel styleClass="col4 mandatory-field" value="#{msg['Label.CountryList']}" /> 
        <div class="col5">
            <p:selectOneMenu   id="countryList" style="width: 10px ; border:1px #DDDBDB solid ;background-color: #F4EDC1;" filter="true" filterMatchMode="startsWith"  required="true" 
                               value="#{bankBranchController.bankBranchDetails.countryCode}">
                <p:ajax process="@this" update="bankDD"  />
                <f:selectItems
                    value="#{bankBranchController.countryList}"
                    var="item" itemLabel="#{item.label}"
                    itemValue="#{item.value}" />
                <f:selectItems/>
            </p:selectOneMenu>


        </div>
    </div>
</div>
此分区用于银行自动完成

<div class="grid4 bordered-box">
    <p:outputLabel styleClass="col4 mandatory-field" value=" Bank " /> 
    <div class="col5">                           
        <p:autoComplete  id="bankDD" minQueryLength="3" value="#{bankBranchController.bankBranchDetails.bankName}" completeMethod="#{bankBranchController.getBankListAutoComplete}"
                         var="varItem" itemLabel="#{varItem.label}" itemValue="#{varItem.value}" scrollHeight="120" >
            <p:ajax event="itemSelect" update="branchDD"></p:ajax>

        </p:autoComplete>      
    </div>
</div>
此div用于分支的自动完成

<div class="col5">
    <p:autoComplete  id="branchDD" minQueryLength="3" value="#{bankBranchController.bankBranchDetails.bankBranchName}" 
                     completeMethod="#{bankBranchController.getBankBranchListAutoComplete}"
                     var="item" itemLabel="#{item.label}" itemValue="#{item.value}" scrollHeight="120" >      
    </p:autoComplete>                               
</div>

您应该在中添加侦听器方法,并且在该方法中您应该bankBranchDetails.setBankName甚至bankBranchDetails=new bankBranchDetails,无论如何,它应该被清除。

您应该在中添加侦听器方法,并且在该方法中您应该bankBranchDetails.setBankName甚至bankBranchDetails=new bankBranchDetails,无论如何,它应该被清除。

我在那个国家的下拉列表中也写了同样的内容。在该resetBranch中,bankBranchDetails.setBankName.But会导致错误,因为类“java.lang.string”没有属性“label”。这是正确的,您的autocomplete的completeMethod返回字符串列表,并且您希望使用var=item itemLabel={item.label}itemValue={item.value},但java.lang.string既没有getLabel,也不是getValue方法。。。这是另一个问题。那么还有其他的解决办法吗?嗯。。。什么这不是一个问题,只是修复你的我写了同样的,在那个国家下拉列表。在该resetBranch中,bankBranchDetails.setBankName.But会导致错误,因为类“java.lang.string”没有属性“label”。这是正确的,您的autocomplete的completeMethod返回字符串列表,并且您希望使用var=item itemLabel={item.label}itemValue={item.value},但java.lang.string既没有getLabel,也不是getValue方法。。。这是另一个问题。那么还有其他的解决办法吗?嗯。。。什么这不是问题,只是解决你的问题