2010-06-14 45 views
2

我已经在ArrayList中存储了大量对象,并且已经在请求中设置了这些对象。现在我想从我的Java脚本中检索Arraylist中的值。请帮我解决方案我怎么能从java脚本中的Java迭代ArrayList中的值?

+0

你可以扩展你的意思吗*“...已经在请求中设置了”*?这并不是很有意义。 – 2010-06-14 11:19:32

+1

我只是在请求中设置列表对象。 – i2ijeya 2010-06-14 11:21:37

+0

我认为他意味着他会将它放入请求范围属性中。 – bezmax 2010-06-14 11:22:16

回答

2

您需要先将它们序列化为JavaScript。 有2种方式来做到这一点:

1)通用的方法 - https://stackoverflow.com/questions/338586/a-better-java-json-library 你只是把你的JSP是这样的:

<script...> 
var myArray = <% JSON.Serialize(myArray) %>; 
</script> 

2)快速和肮脏的:

<script...> 
    var myArray = [ 
    <c:forEach items="${myArray}" var="item"> 
    { 
     name = "<c:out value="${item.name}">", 
     text = "<c:out value="${item.text}">" 
    }, 
    </c:forEach> 
    ]; 
</script> 

两者都会导致这样的Javascript,并且可以在JS中使用:

var myArray = [ 
{ 
    name = "Mike", 
    text = "Hello world" 
}, 
{ 
    name = "Max", 
    text = "Hi!" 
} 
]; 
+0

我不得不提到,我不推荐使用JSON来处理简单的数组(字符串,整数数组),因为在“脏方式”中执行相同的结果要容易得多,而且性能更好。 但是,如果您有一些复杂的对象必须传递给JavaScript - JSON序列化是一种方法。 – bezmax 2010-06-14 11:26:42