将java数组转换为javascript数组时出错

时间:2013-10-30 12:01:55

标签: java jsp

我试图将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;    
        <%}%>   

3 个答案:

答案 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)

我建议修复此代码:忘掉它:

  • 你永远不应该在JSP中使用scriptlet
  • JS字符串文字需要在它们周围引用,并转义引号和其他转义的特殊字符
  • JSON是您应该使用的工具。

因此,在您的控制器中,使用

request.setAttribute("jsArray", someJsonSerializer.toJson(javaArray));

在你的JSP中:

var data = ${jsArray};