0

我正在使用 JSF/Facelets/Seam/RichFaces/JSTL。<c:forEach>在一个 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 个命令链接。第二次调用应该显示 10 个命令链接,但它是 4 个原始的和 6 个新的,而不是 10 个新的 onws。

例如,第一次调用显示以下链接:

a b c d  

第二个调用显示以下链接:

a b c d 5 6 7 8 9 10  

虽然我希望他们是

1 2 3 4 5 6 7 8 9 10  

这是如何引起的,我该如何解决?

我试过了<ui:repeat>,但第二次调用的结果a b c d与第一次调用完全相同。
最后尝试使用<a4j:repeat>,但结果与 相同<ui:repeat>

另一个尝试:
我用不使用标签来显示<a4j:commandLink...每个 Skd 的。forEach我现在看到的和以前一样。所以这不是 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