<%
//Retrieving the Server list from dispatcher
Collection<Server> svr = (Collection<Server>)request.getAttribute("stuff");
ArrayList<String> serverIds = new ArrayList<String>();
for(Server i : svr)
serverIds.add(i.getId());
String [] svrIds = new String[svr.size()];
serverIds.toArray(svrIds);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript">
var instanceIds = new Array(<%=svrIds%>);
//test somethings in there
alert(instanceIds[0]);
</script>
</head>
</html>
回答
如果你想使用Java代碼編寫代碼爲JavaScript數據結構,大概要做到這一點是最簡單的方法爲Java使用JSON庫。 JSON字符串可以解釋爲Javascript代碼。
http://code.google.com/p/json-simple/wiki/EncodingExamples
在代碼中,你應該能夠做這樣的事情:
如果你想使用JSON.simple,那麼這裏的如何產生JSON字符串的例子
var instanceIds = <%= JSONValue.toJSONString(serverIds) %>
您不應該需要將ArrayList轉換爲Java數組。請注意,此功能對您傳入的類型非常敏感;在這種情況下數組實際上不起作用。
另外,爲此,您需要安裝JSON.simple JAR文件並在您的JSP中導入org.json.simple.JSONValue
。
你能舉一個簡單的例子來反對我的代碼嗎?非常感謝 – stackoverflow
已添加。我無法像你那樣在一個JSP設置中測試它,但是我在'ArrayList
我想說,你必須使用svrIds
的JavaScript兼容的字符串表示形式,如String srvIdsString = "\"element1\",\"element2\"";
。爲了達到這個目的,迭代數組並將"\"" + svrIds[i] + "\","
附加到字符串表示中。
請注意,最後一個逗號應該再次移除或根本不添加(例如,跳過最後一個元素或將其添加到前面並跳過第一個元素)。
例子:
StringBuilder idArrayBuilder = new StringBuilder();
for(String id : srvIds) {
if(idArrayBuilder.length() > 0) {
idArrayBuilder.append(",");
}
idArrayBuilder.append("\"").append(id).append("\"");
}
String result = idArrayBuilder.toString();
剩下的就是給你:)
你會舉一個這樣的例子嗎? – stackoverflow
Thomas和Nates的答案都很好。但是,另一種方法是將每個代碼寫入隱藏字段,然後讓您的js在DOM中查看它們。 [將字符串轉換的一個Java的ArrayList到JavaScript數組]的
<%
String[] jArray= new String[2];
jArray[0]="a";
jArray[1]="b";
StringBuilder sb = new StringBuilder();
for(int i=0;i<jArray.length;i++)
sb.append(jArray[i]+",");
%>
<script type="text/javascript">
temp="<%=sb.toString()%>";
var strr = new Array();
strr = temp.split(',','<%=jArray.length%>');
alert("array: "+strr);
</script>
- 1. 將數組的內容傳遞給另一個數組java
- 2. 如何使用jsp將java數組傳遞給javaScript數組?
- 3. 將java數組傳遞給javascript
- 4. 如何將值傳遞給JavaScript數組?
- 5. JAVA-如何將數組傳遞給@NamedNativeQuery
- 6. 如何在JavaScript中將數組數組傳遞給函數?
- 7. 如何將JavaScript數組的數組傳遞給Web服務?
- 8. 將ejs數組傳遞給javascript函數
- 9. 將數據傳遞給數組javascript
- 10. 將數組傳遞給javascript onclick函數
- 11. 如何關聯數組傳遞給JavaScript
- 12. 將java屬性傳遞給javascript函數數組參數
- 13. 將C#數組傳遞給Javascript
- 14. 將.net數組傳遞給javascript
- 15. 嘗試將php數組傳遞給Javascript
- 16. 將javascript數組傳遞給jquery
- 17. PHP將數組項傳遞給javascript
- 18. 在COMET中將數組傳遞給Javascript
- 19. 將javascript對象數組傳遞給ajax
- 20. 將PHP可變數組傳遞給Javascript
- 21. 將javascript數組傳遞給servlet
- 22. 將數組傳遞給JavaScript(MVC)
- 23. 在Tapestry中將數組傳遞給javascript
- 24. 將多維數組傳遞給Javascript
- 25. 將PHP數組傳遞給Javascript
- 26. 將Java數組傳遞給Scala
- 27. Java:將一個數組傳遞給println
- 28. 將數組傳遞給mixin(內聯)
- 29. 如何將數組傳遞給AppDelegate.m?
- 30. 如何將Go數組傳遞給C?
可能重複(http://stackoverflow.com/questions/17440164/converting-a-java-arraylist-of-strings-to-a- javascript-array) –