私は現在、JSFと少し戦っています。商品一覧を表示したい。各アイテムは 2 つの facelet で表示できます (アイテムが編集可能な場合は 1 つ、それ以外の場合は 1 つ)。
コードスニペット:
<div>
<c:forEach items="#{bean.itemList}" var="item">
<c:choose>
<c:when test="#{bean.isEditable(item.id)}">
<ui:include src="#{item.editableFaceletPath}>
<ui:param name="item" value="#{item}" />
</ui:include>
</c:when>
<c:otherwise>
<ui:include src="#{item.normalFaceletPath}>
<ui:param name="item" value="#{item}" />
</ui:include>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
アイテムを編集可能に設定しない限り、これは正常に機能します。ただし、item1、item2、item3 の 3 つのアイテムがあり、item1 を編集可能に設定すると、item2、item2、item3 が表示されます。
なぜ機能しないのかは理解していますが、それ以外の方法で実装する方法がまったくわかりません。誰にも方法はありますか?