2010-06-14 41 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