Java c:forEach循环使用直接索引与属性var和varStatus?

Java c:forEach循环使用直接索引与属性var和varStatus?,java,jsp,foreach,jstl,Java,Jsp,Foreach,Jstl,在处理jstl标记时,我遇到了foreach循环。对于'foreach'循环,jstl提供了两个属性var和varstatus。据我所知,他们可以用来直接发挥索引参数。但我找到了在foreach循环中直接处理索引的另一种方法 <c:forEach items="${someForm.colorSettings}"> <tr> <c:if test="${someForm.colorSettings[index].parameterValue1

在处理jstl标记时,我遇到了foreach循环。对于'foreach'循环,jstl提供了两个属性var和varstatus。据我所知,他们可以用来直接发挥索引参数。但我找到了在foreach循环中直接处理索引的另一种方法

<c:forEach items="${someForm.colorSettings}">
    <tr>
        <c:if test="${someForm.colorSettings[index].parameterValue1 == 'GreaterThanColor'}">
            <td height="30"><fmt:message key="${someForm.colorSettings[index].parameterName.messageKey}" /></td>
            <td class="rightbordernone"><div class="relative mlbdiv">
                    <div class="color_picker_dis" style="background-color: ${someForm.colorSettings[index].colorCodeBackground}"></div>
                    <div class="color_picker_dis" style="background-color: ${someForm.colorSettings[index].colorCodeForeground}"></div>
                </div></td>
        </c:if>
    </tr>
</c:forEach>


只是想得到一个建议。如果我使用上述方法直接处理索引,而不使用var和varstatus变量,在某种程度上它是错误的吗?除了使用varstatus属性外,使用直接索引是否还有任何性能开销?我想这只是一种表示方法,就像使用while或for循环一样。

AFAIK没有惩罚

但是在<<代码>前缀TAG中考虑<代码>前缀<代码>。索引变量名称将不明显


为了避免这种情况,我建议您始终使用varstatus/var.

AFAIK没有惩罚

但是在<<代码>前缀TAG中考虑<代码>前缀<代码>。索引变量名称将不明显


为了避免这种情况,我建议您始终使用varstatus/var。

完全好的做法是使用索引变量,而不是使用属性var和var status。这只是一种表现方式


java中使用while或foreach循环的一个非常类似的例子。在某些情况下使用while循环而不是for循环,因为它不会产生任何逻辑差异,这完全是个人的选择

完全好的做法是使用索引变量,而不是使用属性var和var status。这只是一种表现方式


java中使用while或foreach循环的一个非常类似的例子。在某些情况下使用while循环而不是for循环,因为它不会产生任何逻辑差异,这完全是个人的选择

它更长,因此更难阅读,并不断索引到集合中

键入
bddForm.colorSettings[index]
真的比键入
colorSetting
更可取吗


就性能而言,它取决于基础集合:
ArrayList
提供对索引成员的O(1)访问,而链表是O(N)。这有关系吗?不适用于任何大小合理的JSP页面,但它取决于您对列表的实际操作。

它更长,因此更难阅读,并不断索引到集合中

键入
bddForm.colorSettings[index]
真的比键入
colorSetting
更可取吗


就性能而言,它取决于基础集合:
ArrayList
提供对索引成员的O(1)访问,而链表是O(N)。这有关系吗?不适用于任何大小合理的JSP页面,但这取决于您实际对列表所做的操作。

我不这么认为,如果您直接使用索引变量或var参数,则没有任何区别。如上所述,这是一个类似的情况,就像我们在java中使用while或for循环一样。在var中存储列表引用或直接使用列表几乎是一回事。据我判断,如果我们使用索引变量,对性能没有任何影响。我不这么认为。如果直接使用索引变量或var参数,会有任何不同。如上所述,这是一个类似的情况,就像我们在java中使用while或for循环一样。在var中存储列表引用或直接使用列表几乎是一回事。据我判断,如果我们使用索引变量,则不会对性能产生任何影响。

取决于基础集合及其大小。取决于基础集合及其大小。取决于基础集合及其大小。取决于基础集合及其大小。取决于基础集合及其大小。