我有一个关于渲染组件的问题。
我有一个典型的购物车栏,它是一个带有弹出窗口的 jsf 组件,您可以在其中看到要购买的购物车元素(cartBar.xhtml),您可以从此弹出窗口中删除这些元素。
然后我有两个 xhtml 页面,一个是购物车摘要 (cartSummary.xhtml),另一个是商品目录 (catalog.xhtml)。
在 cartSummary.xhtml 和 cartBar.xhtml 中,我有一个用于删除购物车项目的按钮。因此,如果我从 cartSummary 中删除它,我必须渲染一个 cartBar UIComponent 来刷新 shoppingCart 和 cartSummary。这完美无缺。
但是,如果我尝试从我在删除按钮中的 cartBar(弹出窗口)中删除该项目,这是一个引用 cartSummary.xthml 的渲染属性,因为我需要该项目也从那里消失。问题是,当我尝试导航到 catalog.xhtml 时,会出现一个视图错误,告诉我无法找到 cartBar 渲染中的 cartSummary.xthml UIComponent。
我会尝试一些代码。
购物车栏.xhtml
<h:panelGroup id="cartItemsPopup" styleClass="row" layout="block">
//Code to show elements
<h:commandButton value="Delete">
<f:ajax listener="#{shoppingCartBean.deleteItem(cartItem)}" render="@form :cartItemBlock" />
</h:commandButton>
</h:panelGroup>
cartSummary.xhtml
<h:panelGroup id="cartItemBlock" styleClass="row" layout="block">
//Code to show elements
<h:commandButton value="Delete">
<f:ajax listener="#{shoppingCartBean.deleteItem(cartItem)}" render="@form :cartItemsPopup" />
</h:commandButton>
</h:panelGroup>
当我单击 cartBar.xhtml h:commandButton 然后导航到目录时,错误显示:cartItemBlock 无法定位,这是真的,因为它是来自 cartSummary 的 UIComponent。
知道如何解决吗?