0

JSF/Facelets/Seam/RichFaces/JSTL を使用しています。<c:forEach>1 つの Facelets ファイルで、タグを使用して Bean プロパティに基づいたいくつかのコマンド リンクを表示しています。

<c:forEach items="#{myBean.getSkds()}" var="skd">
    <a4j:commandLink value="#{skd.getLabel()}" ... />
</c:forEach>  

ページの別の部分で、skdsmyBean のプロパティを変更し、すべてのパネルを再レンダリングします。

<a4j:commandButton action="#{myBean.changeSkds()}"
    image="/img/ico_change.gif"
    reRender="allPanels"
/>

最初の呼び出しでは、4 つのコマンド リンクがすべて正しく表示されます。2 回目の呼び出しでは 10 個のコマンド リンクが表示されるはずですが、10 個の新しい onws ではなく、元の 4 個と新しい 6 個のリンクが表示されます。

たとえば、最初の呼び出しには次のリンクが表示されます。

a b c d  

2 番目の呼び出しでは、次のリンクが表示されます。

a b c d 5 6 7 8 9 10  

私は彼らがそうであることを期待していますが

1 2 3 4 5 6 7 8 9 10  

これはどのように発生し、どうすれば解決できますか?

を試しました<ui:repeat>が、2 回目の呼び出しの結果a b c dは最初の呼び出しとまったく同じです。
最後に で試してみまし<a4j:repeat>たが、結果は と同じ<ui:repeat>です。

別の試み:タグを使用せずに for each Skd
を表示するために使用します。以前と同じように見えるようになりました。したがって、これは forEach の理由ではありませんが、rerender とandの間の何かに関連しているようです。<a4j:commandLink...forEach<s:div><a4j:commandLink>

興味深いことに
、次の方法でラベルを表示してみます。

<c:forEach items="#{myBean.getSkds()}" var="skd">
    #{skd.getLabel()}
    <a4j:commandLink value="#{skd.getLabel()}" ... />
</c:forEach>  

そして、私は本当に奇妙なものを見ます!!!
skd.getLabel() は正しいですが、commandLink の値は正しくありません!!!
何を追加しますか???!!!!???

4

0 に答える 0