java - JSTL:c:forEach 是否保证 JSP 中的列表排序?

标签 java jsp foreach jstl

我的 JSP 包含以下代码片段:

<c:forEach items="${rulesForm.rules}" var="rule" varStatus="counter">
        <tr id="rules${counter.index}" name="rules[${counter.index}]">

“规则”本身就是一个List<Rule> .

当我通过我的ModelAndView时从我的 Spring MVC Controller 返回对象,我可以看到我的列表的顺序是正确的。

但是,当它在屏幕上呈现时,顺序有些随机。我还有 JavaScript 对 DOM 执行一些修改,但我没有看到它执行任何重新排序。 因此,我想知道是否 c:forEach罪魁祸首是什么?

最佳答案

我打赌 <c:forEach/> 使用Iterator在大多数实现中,因此它依赖于底层收集顺序。因此,如果您通过 List ,顺序被保留,但 Set 则不然。 s。

虽然文档没有说明:

items [...] Collection of items to iterate over.

想一想 - 如果不保留有序集合的顺序,任何服务器端结果排序都没有意义。

关于java - JSTL:c:forEach 是否保证 JSP 中的列表排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839668/

相关文章:

Java - 如何在一个输入中输入多行文本

java - Spring RequestBody 与 Postman 测试

java.io.NotSerializableException 和实现 Serializable

java - 将参数传递给 url

python - 使用 Itertools 的等效嵌套循环结构

java p2p 视频库?

java - Java中两个war文件之间的事务管理

java - 2 model.setAttribute方法中的对象

php - 多次使用 foreach

php - 使用 PHP 插入数据库 - 仅插入一行