Primefaces在面板中使用呈现时Ajax侦听器未被调用

问题描述:

以下是正在使用的代码片段。当我从下面的代码中删除呈现的属性时,监听器被调用。但是使用渲染,它不会调用监听器。 我的PrimaryContactHomeAddressBean bean位于RequestScope中,而AddressManagedBean具有ViewScope。Primefaces在面板中使用呈现时Ajax侦听器未被调用

<p:outputPanel id="countyPanel"> 
      <p:panelGrid 
       id="primaryContactHomeZipPanel" rendered="#{address.isMultipleCounty eq 'Yes'}"> 
       <h:outputLabel for="primaryContactHomeCounty"> 
        </h:outputLabel> 
       <p:selectOneMenu id="primaryContactHomeCounty" 
        value="#{addressManagedBean.countyName}"> 
        <f:selectItems value="#{addressManagedBean.countyListDropdown}" /> 
         <p:ajax listener="#{primaryContactHomeAddressBean.saveCountyName}" process="@this" update="primaryContactHomecountyName" partialSubmit="true"></p:ajax> 
       </p:selectOneMenu> 
       <p:message for="primaryContactHomeCounty" /> 


      </p:panelGrid> 
     </p:outputPanel> 
+0

您对'

+0

这是一个错字。现在添加了。 – Ninja

+0

'#{address}'的范围是什么? – BalusC

该行不符合JavaBean标准。

rendered="#{address.isMultipleCounty eq 'Yes'}" 

如果获取与is开始,那么它应该返回一个布尔值,但在这里,你检查的字符串。如果它返回一个布尔值,则删除eq 'Yes',不管重命名为multipleCounty

+1

我们能不能把注意力集中在这里的实际问题上...... !!! – Ninja

+0

只有当你包含渲染的代码时,代码才会工作,它的语法不正确?这听起来像是我的实际问题。 –

+0

我同意不符合Java标准,但没有编译问题。即使我使用getMultipleCounty而不是isMultipleCounty,问题仍然是一样的。 – Ninja

我可以通过移动isMultipleCounty变量为ViewScoped豆即AddressManagedBean.