You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将值存入request属性List指定索引并通过<c:forEach>解析?

解决方法:正确修改List元素并通过<c:forEach>遍历

首先你得明确:你后面写的request.setAttribute("elementsJSP[2]", "...")完全无效,这不是修改List里的元素,而是给request对象新增了几个独立的属性,键分别是elementsJSP[2]、elementsJSP[5],和你之前存的elementsJSP List没有任何关联。

正确修改List指定索引元素的方式

你需要先从request里取出原本的List对象,直接操作这个List的元素:

// 先从request获取已有的List,若未初始化则先创建
List<String> elements = (List<String>) request.getAttribute("elementsJSP");
if (elements == null) {
    elements = new ArrayList<>();
    request.setAttribute("elementsJSP", elements);
}

// 处理指定索引赋值:需确保List大小足够,避免索引越界异常
// 比如要设置索引10的元素,先把List扩容到至少11个元素(索引从0开始)
int targetIndex = 10;
while (elements.size() <= targetIndex) {
    elements.add(null); // 用null填充空位
}

// 现在可以设置指定索引的值了
elements.set(2, "hello");
elements.set(5, "world");
elements.set(10, "stackoverflow");

用<c:forEach>遍历List

在JSP页面中,直接遍历elementsJSP即可,示例代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach items="${elementsJSP}" var="item" varStatus="status">
    索引${status.index}:<c:out value="${item}" default="空值"/><br>
</c:forEach>
  • ${status.index}会输出当前元素的索引
  • <c:out value="${item}" default="空值"/>可以处理List中为null的元素,显示默认文本

内容的提问来源于stack exchange,提问作者fandetv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:40:35