我试图将java数组转换为js数组。但它给出错误,因为“k无法解析为变量”.x.getrows返回数组。
<% MySQLAccess x=new MySQLAccess();%>
<% String b[]=x.getRows();%>
var message="<%out.print(b[0]);%>"
console.log(message)
var data=new Array();
<% for(int k=0;k<b.length ;k++) %>
<% {%>
var temp=<%= b[k] %>
data[<% =k %>]=temp;
<%}%>
答案 0 :(得分:1)
@ user2815407您在字符串数组中收到了什么?可能类似于[str1,str2,str3]
。如果是这样,您可以轻松地将此字符串数组转换为js数组。
var values = [];
values = //Your_string_array
//Iterate through each value
$.each(values, function( index, value ) {
console.log(value);
});
见fiddle。这可能不是将java转换为js数组的最佳方法。希望这会给你一些想法。如果这有帮助,请告诉我。
答案 1 :(得分:1)
我建议不要使用scriplets,但这是解决问题的方法:
<% String b[] = new String[]{"10", "20", "30"};%>
var message = "<%out.print(b[0]);%>"
console.log(message)
var data = new Array();
<% for(int k=0;k<b.length;k++){%>
var temp =<%=b[k]%>
data[<%=k%>] = temp;
<%}%>
错误只是不必要的空间。
答案 2 :(得分:0)
我建议修复此代码:忘掉它:
因此,在您的控制器中,使用
request.setAttribute("jsArray", someJsonSerializer.toJson(javaArray));
在你的JSP中:
var data = ${jsArray};