我正在使用 JSF/Facelets/Seam/RichFaces/JSTL。<c:forEach>
在一个 Facelets 文件中,我使用标签显示了一些基于 bean 属性的命令链接。
<c:forEach items="#{myBean.getSkds()}" var="skd">
<a4j:commandLink value="#{skd.getLabel()}" ... />
</c:forEach>
在页面的另一部分,我更改了skds
myBean 的属性并重新渲染所有面板。
<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 值不正确!!!
怎么回事???!!!