Jsf总是从ArrayList中删除最后一个元素

Jsf总是从ArrayList中删除最后一个元素,jsf,ajax4jsf,immediate-attribute,Jsf,Ajax4jsf,Immediate Attribute,我在一个支持bean中有一个ArrayList,在JSF页面中用c:forEach呈现它。当我按索引删除ArrayList元素时,无论索引是什么,jsf都会删除最后一个元素。为什么会这样 JSF中的删除按钮是: <a4j:commandButton immediate="true" action="#{bean.removeEntry}" ... 更多的代码可能会有所帮助,但立即启动命令按钮基本上用于从当前页面导航,因为actionlistener或action将在应用请求阶段执行,典型

我在一个支持bean中有一个
ArrayList
,在JSF页面中用
c:forEach
呈现它。当我按索引删除
ArrayList
元素时,无论索引是什么,jsf都会删除最后一个元素。为什么会这样

JSF中的删除按钮是:

<a4j:commandButton immediate="true" action="#{bean.removeEntry}" ...

更多的代码可能会有所帮助,但立即启动命令按钮基本上用于从当前页面导航,因为actionlistener或action将在应用请求阶段执行,典型情况是取消按钮。这意味着您将不会在那里获得更新的值。
如果您的逻辑依赖于其他uiinput,那么立即使用它,您可以在valuechangelistener中挂钩

但我怀疑您试图实现的目标能否以更好的方式实现,看看这个

您是否使用Facelets(.xhtml页面)?如果是这样,您可能会遇到一些关于JSTL标记的常见误解,如
。这里有一篇关于它的好文章:


基本上,
仅在最初构建视图时处理;它不会成为组件树的一部分,并且在更改备份集合时可能具有一些您不期望的行为。您最好改用

我也遇到过类似的问题。我使用了'tr:iterator'来迭代ArrayList'();'重复“解决了我的问题”。 谢谢