【问题标题】:iterate through a model map list in javascript遍历 javascript 中的模型映射列表
【发布时间】:2015-01-20 08:06:14
【问题描述】:

我在我的项目中使用Spring MVC。在我的控制器中,我将值列表添加到模型映射中。

model.addAttribute("BulkList", finalizedBulkList);

这个finalizedBulkListjava.util.List

现在我需要遍历列表并在javascript 中检索列表中的值。

我该怎么做?

var limit = parseInt(${BulkList}.length);

for(i=0; i<limit; i++){
    console.log("value is = "+${BulkList[i]});
}

以上是我尝试过的,但不正确。

【问题讨论】:

  • 你打算在 javascript 中用它做什么?
  • Java 和 JavaScript 不是相关的语言(尽管名称可能会让您这么认为)。您不能仅仅假设 JavaScript 将能够使用 Java 列表。为什么不使用 Java 或 Jsp 作为 UI 呢?
  • 最好的解决方案是通过 AJAX 调用获取这些数据,而不是将它们作为数组写入页面。其次,您在 Spring MVC 中使用了什么 ViewResolver?
  • @Stultuske 这个 javascript 代码在 jsp 页面中,而不是在 java 代码中
  • @VPK 我需要检查列表中的非零值,并将它们打印在 html div 上

标签: java javascript spring spring-mvc


【解决方案1】:

您无法在 Javascript 中访问 BulkList。 Javascript 只能访问由您的 JSP 生成的源代码。

要在 javascript 中访问列表,您必须将项目添加到 javascript 数组中。像这样的:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
var bulkListJavascriptArray = [ 
<c:forEach var="bulkItem" items="${BulkList}">
   <c:out value="${bulkItem}"/>,
</c:forEach>
];

for(var i=0; i<bulkListJavascriptArray.length; i++){
    console.log("value is = " + bulkListJavascriptArray[i]);
}

【讨论】:

    【解决方案2】:

    您可以在 html 或 jsp 代码中使用 jstl 标签来遍历 modelMap 列表对象,

    <div><c:forEach begin="0" end="${fn:length(BulkList) - 1 }" items="${BulkList}" var="bulkObject">
        <c:if test="${bulkObject != 0}"><c:out value="${bulkObject}"/></c:if>
    </c:forEach>
    </div>
    

    要使用这个JSTL 标签库,您需要将它包含在您的jsp 页面中。

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

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

    【讨论】:

    • 您不知道如何在 javascript 中访问它。说我需要在浏览器控制台中打印值,我该怎么做?
    • 然后,使用 &lt;% System.out.println("Hello World in Console!"); %&gt; 代替 &lt;c:out&gt;。您提到的使用 javascript 这样做的要求是我认为不是我推荐的方法,因为 Javascript 在客户端运行而 scriptlet 在服务器端运行。
    • 如果我能得到这样的列表长度,var limit = parseInt(${BulkList}.length); 为什么我不能在脚本中遍历列表
    猜你喜欢
    • 2012-05-14
    • 2014-04-01
    • 2022-01-19
    • 1970-01-01
    • 2013-01-04
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多