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>
答
该行不符合JavaBean标准。
rendered="#{address.isMultipleCounty eq 'Yes'}"
如果获取与is
开始,那么它应该返回一个布尔值,但在这里,你检查的字符串。如果它返回一个布尔值,则删除eq 'Yes'
,不管重命名为multipleCounty
。
答
我可以通过移动isMultipleCounty
变量为ViewScoped
豆即AddressManagedBean.
您对'
这是一个错字。现在添加了。 – Ninja
'#{address}'的范围是什么? – BalusC