【问题标题】:Getting error in jsp while traversing list of string遍历字符串列表时在jsp中出错
【发布时间】:2021-08-31 07:51:53
【问题描述】:

我正在将一个字符串列表从我的控制器发送到我的 jsp

model.addAttribute("itemList", Arrays.asList("first", "second"));

并试图将它们放入我的 jsp 中

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

但我收到以下错误

jQuery.Deferred exception: first is not defined 
ReferenceError: first is not defined

【问题讨论】:

    标签: jquery spring spring-boot spring-mvc jsp


    【解决方案1】:

    console.log 接受一个字符串。 JS在服务端渲染,在客户端运行。 ${singleItem} 必须是:

    • 带引号
    • JS 转义

    看看你渲染的页面:你会看到

    console.log(first); 
    console.log(second);
    

    JS 认为这些是变量引用(因为在 JS 中,它们是)。

    只是用引号括起来是不够的,因为被渲染的字符串可能有它自己的引号,例如,

    Arrays.asList("first's doodad")
    

    没有 JS 转义,使用 JS 单引号:

    console.log('${singleItem}');
    

    将呈现为:

    console.log('first's doodad');
    

    这是无效的JS。

    了解代码的运行位置以及检查呈现的 HTML 非常重要。渲染到环境中时,了解您要渲染到的环境很重要,就像将 HTML 渲染为 HTML 时一样。

    【讨论】:

    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多