1

コンポーネントのレンダリングについて質問があります。

購入したいカート要素 (cartBar.xhtml) を表示できるポップアップのある jsf コンポーネントである典型的なショッピング カート バーがあり、このポップアップからこの要素を削除できます。

次に、2 つの xhtml ページがあります。1 つはカートの概要 (cartSummary.xhtml) で、もう 1 つは商品カタログ (catalog.xhtml) です。

cartSummary.xhtml と cartBar.xhtml には、カート項目を削除するボタンがあります。したがって、cartSummary から削除すると、cartBar UIComponent をレンダリングして shoppingCart と cartSummary も更新する必要があります。それは完璧に機能します。

しかし、削除ボタンにあるカートバー (ポップアップ) からアイテムを削除しようとすると、アイテムがそこからも消える必要があるため、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>

カート概要.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 をクリックしてカタログに移動すると、cartSummary の UIComponent であるため、:cartItemBlock が見つからないというエラーが表示されます。

それを解決する方法はありますか?

4

0 に答える 0