<%
//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) –