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

JSP遍历控制器传递的字符串列表时报first未定义错误如何解决

错误原因
  • EL 表达式直接输出字符串到 JavaScript 代码中时不会自动添加引号,JSP 渲染完成后生成的实际运行代码为 console.log(first);,JavaScript 会将 first 识别为变量名而非字符串值,由于你未定义过该变量,因此抛出未定义的报错。
解决方案

基础修复(无特殊字符场景)

直接给 EL 表达式外层套上单引号,渲染后会生成合法的 JavaScript 字符串语法:

<c:forEach var="singleItem" items="${itemList}">
    console.log('${singleItem}');
</c:forEach>

兼容特殊字符场景

如果字符串内容可能包含单引号、换行、HTML 特殊字符,建议配合 JSTL 的 fn:escapeXml 做转义处理,避免触发 JavaScript 语法错误:

<!-- 首先在JSP头部引入fn标签库 -->
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:forEach var="singleItem" items="${itemList}">
    console.log('${fn:escapeXml(singleItem)}');
</c:forEach>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:36:07