私はJSFプロジェクトに参加しており、ショッピングカートのビューを作成しようとしています。ユーザーのカートには、cartBeanのハッシュマップ(キー= ID、値=数量)に保存されているチケットを含めることができます。cart.xhtmlでチケットを出力しようとすると、ここにコードが表示されます。
<h:form>
<c:forEach var="tickets" items="#{cartBean.showTickets()}">
<hr/>
<div class="eight columns">
<div class="two column count">
<h:outputText style="font-size:30px;" value="#{tickets.value}"/>
</div>
<div class="two columns eventimg">
<a href="event.xhtml"><img src="img/dummy/event2.jpg" /></a>
</div>
<div class="six columns eventinfo">
<h4><a href="event.xhtml">Party Hard! </a></h4>
<p>05. Nov 2012</p>
</div>
<div class="two columns price">
<font style="font-size:30px;">35 €</font>
</div>
<div class="eight columns">
<h:outputText value="#{tickets.key}" escape="false"/>
<h:commandButton value="x" action="#{cartBean.removeFromCart(tickets.key)}"/>
</div>
</div>
</c:forEach>
</h:form>
カートからチケットを1つ削除しようとするまでは、これで問題ありません。2つの異なるIDキーがある場合、それらはカートに正しく表示されます。ID 1のチケットを削除しようとすると、ID2のチケットのみがカートに残ります。これは正しいです。しかし、最初にid 2を削除すると、ハッシュマップから削除されているにもかかわらず、カートにチケット2が表示されます。サイトを更新すると、ID 1のチケットが正しく表示されますが、何が問題になっていますか?
私を助けてください!