0

我正在将一个数组列表从 jsp 传递给 javascript。如何在javascript中访问arraylist的元素

jsp代码:

<%out.print(arraylist)%>

javascript

var http = createRequestObject();
var reponse=http.responseText   
4

4 回答 4

0

您需要使用 JSTL 进行迭代。

添加标签库

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

迭代arraylist的代码

<c:forEach items="${arraylist}" var="current">
   <c:out value="${current}"/>
</c:forEach>
于 2013-01-23T06:28:33.067 回答
0

使用 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];
        }
    }
于 2013-01-23T07:13:12.017 回答
0

如果您使用的是 scriptlet,那么您需要像 java 代码一样进行迭代。

示例片段:

<% 
    Iterator itr = arrayList.iterator();
    while(itr.hasNext()){
     System.out.println(itr.next());
    }
%>
于 2013-01-23T06:19:59.493 回答
0

在您的 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"
}];
于 2013-01-23T06:25:03.323 回答