【问题标题】:having trouble looping over objects in spring MVC using javascript使用javascript在spring MVC中循环对象时遇到问题
【发布时间】:2017-05-16 23:46:25
【问题描述】:

我是 Spring 和 JSP 编码的新手。我只是想循环使用javascript从spring控制器传递到我的JSP中的对象数组。以下 html 代码在我的 JSP 中完美运行,其中模型从 spring 控制器传递到 jsp 视图。

<c:forEach items="${model.dataBaseManager.dataBases.get(0).institutionManager.institutions}" var="prod">
        <c:out value="${prod.name}"/> <i><br><br>
</c:forEach>

但是,我需要使用 javascript 而不是 html 来循环这个数组。这是我尝试过的:

for (var x = 0; x < 10; x++){
          alert("${model.dataBaseManager.dataBases.get(0).institutionManager.institutions.get(x).name}");
   };

然而,即使 x 值保持索引,这也会不断弹出数组中第一个值的警报。我曾尝试将 dataBaseManager 转换为 JSON,然后再将其传递给具有相同结果的 JSP。 谢谢,

【问题讨论】:

    标签: javascript java spring jsp spring-mvc


    【解决方案1】:

    JSTL 是服务器端,而 JS 是客户端,在您的代码中,警报行仅在服务器端解析第一个元素,即model.dataBaseManager.dataBases.get(0)。还有这里的JS,x没有意义。

    你可以尝试为 JS 解决这个问题。

    <script>
    var prod=[];//js array
    <c:forEach items="${model.dataBaseManager.dataBases.get(0).institutionManager.institutions}" var="prod">
            prod.push("${prod.name}");// add each name one by one to js array
    </c:forEach>
    alert(prod.join(',')); // shows all name in one alert as csv
    </script>
    

    【讨论】:

    • 快速问题:为什么 alert(x) 在 for 循环中正常工作?换句话说,如果我将 alert(x) 放在 for 循环中,它将正确弹出 10 个具有不同 x (0-9) 值的实例?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2023-03-06
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多