在javascript中迭代模型映射列表

在javascript中迭代模型映射列表,java,javascript,spring,spring-mvc,Java,Javascript,Spring,Spring Mvc,我在项目中使用springmvc。在我的控制器中,我在模型映射中添加了一个值列表 model.addAttribute("BulkList", finalizedBulkList); 这个finalizedBulkList是一个java.util.List 现在我需要遍历列表并在javascript中检索列表中的值 我怎么做 var limit = parseInt(${BulkList}.length); for(i=0; i<limit; i++){ console.log

我在项目中使用
springmvc
。在我的控制器中,我在模型映射中添加了一个值列表

model.addAttribute("BulkList", finalizedBulkList);
这个
finalizedBulkList
是一个
java.util.List

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

我怎么做

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

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

对于(i=0;i,您可以使用jstl标记在html或jsp代码中这样迭代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>


Javascript中没有可访问的
批量列表。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]);
}

...
var bulkListJavascriptArray=[
,
];

for(var i=0;i您打算在javascript中使用它做什么?Java和javascript不是相关的语言(尽管名称可能会让您这么想)。您不能仅仅假设JavaScript能够处理Java列表。为什么不在UI中使用Java或Jsp?最好的解决方案是通过AJAX调用获取这些数据,而不是将它们作为数组写入页面。其次,您在Spring MVC中使用的ViewResolver是什么?@Stultuske此JavaScript代码在Jsp页面中,而不是在Java中 code@VPK我需要检查列表中的非零值,并将它们打印在html分区中。你不知道如何在javascript中访问这些值吗。如果我需要在浏览器控制台中打印这些值,我该怎么做?那么,不要使用
而使用
。你提到的使用javascript来执行这些操作的要求我认为不是重复当Javascript在客户端运行,Scriptlet在服务器端运行时,我建议使用这种方法。如果我可以像这样获得列表的长度,
var limit=parseInt(${BulkList}.length);
为什么我不能在脚本中迭代列表
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ 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]);
}