0

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

3 回答 3

1

@user2815407 您在字符串数组中收到了什么?可能是这样的[str1,str2,str3]。如果是这样,您可以轻松地将这个字符串数组转换为 js 数组。

var values = [];
values = //Your_string_array
//Iterate through each value
$.each(values, function( index, value ) {
   console.log(value);
});

看到这个小提琴。这可能不是将 java 转换为 js 数组的最佳方式。希望这会给你一些想法。让我知道这是否有帮助。

于 2013-10-30T13:31:15.527 回答
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;
            <%}%>

错误只是不必要的空间。

于 2013-10-31T04:06:35.567 回答
0

我修复此代码的建议:忘记它:

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

所以,在你的控制器中,使用

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

在您的 JSP 中:

var data = ${jsArray};
于 2013-10-30T12:07:22.963 回答