我正在将一个数组列表从 jsp 传递给 javascript。如何在javascript中访问arraylist的元素
jsp代码:
<%out.print(arraylist)%>
javascript
var http = createRequestObject();
var reponse=http.responseText
我正在将一个数组列表从 jsp 传递给 javascript。如何在javascript中访问arraylist的元素
jsp代码:
<%out.print(arraylist)%>
javascript
var http = createRequestObject();
var reponse=http.responseText
您需要使用 JSTL 进行迭代。
添加标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
迭代arraylist的代码
<c:forEach items="${arraylist}" var="current">
<c:out value="${current}"/>
</c:forEach>
使用 JSON 很容易实现这一点。您可以使用 JSONArray 并将 arraylist 转换为 JSP 或 java 中的 json。然后在javascript中你可以像这样迭代JSON
for(var i=0;i<jsonArr.length;i++){
var obj = jsonArr[i];
for(var key in obj){
var attrName = key;
var attrValue = obj[key];
}
}
如果您使用的是 scriptlet,那么您需要像 java 代码一样进行迭代。
示例片段:
<%
Iterator itr = arrayList.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
%>
在您的 scriptlet 中迭代 Arraylist 并将必要的值分配给 javascript 变量,如下所示。
粗略的代码
<%
Iterator it = arrayList.iterator();
while(it.hasNext()){
%>
<script> var val = <%=itr.next()%> </script>
<%}%>
希望能帮助到你!!
编辑:
<script>
var someArray = [
<c:forEach items="${someArray}" var="it">
{
name = "<c:out value="${it.name}">",
val = "<c:out value="${it.val}">"
},
</c:forEach>
];
</script>
以上将导致像这样的javascript,
var someArray = [
{
name = "Peter",
val = "First Name"
},
{
name = "Naveen",
val = "Last Name"
}];