遍历 javascript 中的模型映射列表

iterate through a model map list in javascript

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

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]});
}

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

您可以在 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 中访问 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]);
}