我有一个名为的 Facelets子视图basedata-cpanel.xhtml
,它通过<ui:param>
s 获取其参数:
<ui:define name="content-top">
<h:form>
<ui:include src="/subviews/basedata-cpanel.xhtml">
<ui:param name="customerId" value="#{pqHome.pq.customer.id}" />
<ui:param name="customerName" value="#{pqHome.pq.customer.name}" />
<ui:param name="customers" value="#{organizationManager.allCustomers}" />
<ui:include />
</h:form>
</ui:define>
在子视图中,我只需要下面的面板来显示当前选择的客户名称(该面板用于 NEW 和 UPDATE 面板/页面)。我需要一个 AJAX 请求。
中的代码/subviews/basedata-cpanel.xhtml
:
<h:selectOneMenu value="#{customerId}" id="customer-select">
<f:selectItems value="#{customers}"
var="customer"
itemValue="#{customer.id}"
itemLabel="#{customer.name}" />
<f:ajax render="customer-name" />
</h:selectOneMenu>
<h:outputText value="#{customerName}" id="customer-name" />
我将其<f:ajax render="customer-name" />
放入选择中,但 outputText 没有更新。我真的没想到,但是...
我需要做什么才能让它工作?
由于 Facelets 子视图仍然具有与传递相同的参数,我如何获得“新的”?这方面的最佳做法是什么?
PS:pqHome是一个@ViewScoped
bean