还有一个关于 JSF 的问题。特别是 Primefaces。
同时通过 id 对元素进行 ajax 更新有以下问题。如果页面上的元素一个接一个,则 ajax 更新执行正常:
<ui:repeat value="#{showProducts.inCart}" var="cart">
<td><p:spinner min="0" value="#{cart.count}" immediate="true">
<p:ajax process="@this" update="count,subTotal"/></p:spinner></td>
<td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
<h:outputText value="#{showProducts.subTotal}" id="subTotal"/>
</ui:repeat>
这里 ID 为“count”的元素排在第一位,然后 ID 为“subtotal”的元素排在第二位。如果页面上的元素不是一个一个的,则不会更新具有“小计”ID 的第二个元素:
<ui:repeat value="#{showProducts.inCart}" var="cart">
<td><p:spinner min="0" value="#{cart.count}" immediate="true">
<p:ajax process="@this" update="count,subTotal"/></p:spinner></td>
<td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
<td><h:outputText value="#{cart.place}" /></td>
</ui:repeat>
<h:outputText value="#{showProducts.subTotal}" id="subTotal"/>
这是正常行为还是我错过了一些参数?