当我们将它与p:inputText一起使用时,如何在p:ajax中传递参数?

时间:2014-12-22 07:14:16

标签: ajax jsf jsf-2 primefaces

我需要在p:ajax方法中传递一个参数。有一个<p:inputText>,当我完成输入时,我的输入框必须更新我的p:ajax方法。但我无法在我的方法中发送参数。

我的jsf页面是:

<h:outputText value="#{msg['elicense.contractorFormRenewal.personal.registrationNo']}"/>
<p:inputText id="registrationNo" value="#{renewalContractorBean.registrationNo}"  required="false" label="Registration No">
    <p:ajaxlistener="#{renewalContractorBean.readLicenseDetailsById(renewalContractorBean.registrationNo)}/>
</p:inputText>

我在bean中的方法是

public void readLicenseDetailsById(String id) {
    FirmOrCompany firmOrCompany = contractorRenewableService.readLicenseDetailsById(id);
    this.setLicenseName(firmOrCompany.getLicensePersonName());
    this.setClassofLicense(firmOrCompany.getLicenseAppliedFor());
}

2 个答案:

答案 0 :(得分:1)

没有<p:ajaxListener>,我不知道您是否错过了您的代码或问题。

考虑到你在问题中犯了一个错误,你的方法应该工作正常,你只是忘了在event=blur中设置<p:ajax>,所以一旦你离开inputTextBox就会被调用(意味着用户)已完成打字)

  <p:inputText id="registrationNo" value="#{renewalContractorBean.registrationNo}" required="false" label="Registration No">
       <p:ajax event="blur" listener="#{renewalContractorBean.readLicenseDetailsById()}/>
  </p:inputText>

根据您在bean中所做的更改,检查是否要更新其他组件,您必须在<p:ajax><p:ajax event="blur" update"IdOfTheComponent" ....>

中指定该组件的ID

此外,您不必将已经在bean中的属性作为参数传递,您可以在bean中获取它。

最后,在renewalContractorBean

public void readLicenseDetailsById()
{
  String id = this.registrationNo;
  FirmOrCompany firmOrCompany= contractorRenewableService.readLicenseDetailsById(id);
  this.setLicenseName(firmOrCompany.getLicensePersonName());
  this.setClassofLicense(firmOrCompany.getLicenseAppliedFor());

}

答案 1 :(得分:0)

嗨,你是不是尝试了'=#34; tableid&#34; ?当我从p:dataTable中的列表中删除时,JSF可以更新此dataTable,我希望这会有所帮助。 这是我的代码来更新我的p:datatable

<p:dataTable id="tbl" value="#{borrowerBean.borrowers}" var="bor">
            <p:column>
                <f:facet name="header">
                    <h:outputLabel>ID: </h:outputLabel>
                </f:facet>
                <h:outputLabel value="#{bor.id}"/>
            </p:column>
.
.
.
    <p:commandButton value="Delete" action="#{user.deleteBorrower(bor.id)}" update="tbl"/>
            </p:column>
</p:dataTable>