将string的Java ArrayList转换为JavaScript数组
在我的Java代码中,我有一个String的ArrayList 。 我想将这些数据放在我正在处理的JSP页面上的JavaScriptvariables中。 我的第一个想法是直接包括它,例如: 
 var myArray = <%= arrayList %>; 
 不幸的是,当执行时, myArray是格式为[a,b,c]的string,而不是实际的JavaScript数组。 如何从Java ArrayList获取一些数据到JavaScript数组? 
 当你使用<%=arraylist%>它调用列表上的toString()并打印[a,b,c] 
 不,你不能直接转换从Java arrayList到JavaScript数组,将Java ArrayList转换为JSON String ,并使用JSON.parse()来获得Javascript object 。 
在Java中看看Json objet和Json
随着图书馆:
Java的:
 public static String toJavascriptArray(String[] arr){ StringBuffer sb = new StringBuffer(); sb.append("["); for(int i=0; i<arr.length; i++){ sb.append("\"").append(arr[i]).append("\""); if(i+1 < arr.length){ sb.append(","); } } sb.append("]"); return sb.toString(); } 
JSP:
 var myArray = <%= toJavascriptArray(arrayList) %>; 
在JSP页面中执行以下操作
 <% List<String> strList = new ArrayList<String>(); strList.add("one"); strList.add("two"); strList.add("three"); %> var jsArray = [<% for (int i = 0; i < strList.size(); i++) { %>"<%= strList.get(i) %>"<%= i + 1 < strList.size() ? ",":"" %><% } %>]; 
输出将是
 var jsArray = ["one","two","three"]; 
如果你的列表是空的,它将输出
 var jsArray = []; 
试试这个方法:
 var myArray = <%=net.sf.json.JSONSerializer.toJSON(arrayList) %>; 
  JavaScript split()方法返回一个数组,因为我们知道,所以它是将javaArrayList转换为javascript数组的最简单方法。 它对我来说工作正常。 
 function toJavascript(){         var array="<%=javaArrayList%>";<br>         array=array.replace("[", "");<br>         array=array.replace("]", "");<br>         return javaArray.split(",");<br> }