5

我需要将速度字符串数组传递给 JavaScript 函数。因此,为此,我想将速度数组转换为 JavaScript 数组。

源代码如下所示:

String[] arrStr[] = new String[3];
arrStr[0] = "String 1";
arrStr[1] = "String 2";
arrStr[2] = "String 3";
request.setAttribute("a", arrStr);

在我的 HTML 模板中,

#set ( #arr = $request.getAttribute("a"))

<script language="javascript">

var newArr = "${arr}";

</script>

但字符串数组不会复制到 newArr。谁能帮我解决这个问题?

4

2 回答 2

1

就像是:

var newArr = [ 
#foreach( $var in $arr )#if($foreach.index>  0),#end "$var" #end 
]; 
于 2012-05-10T05:44:12.647 回答
1

这是一个非常好的问题,我尝试了无数的解决方案,但似乎没有任何合理的方法无法制作字符串数组,一切都导致 [param1, param2] 而不是 ["param1", "param2"] 和错误 "param1没有定义”。

但是,我能够通过使用 #foreach 作为参数和休息参数来解决它。

在 HTML 中:

functionName(
  #foreach($obj in $array)
      #if ($velocityCount != $array.size())'$obj',
      #else'$obj'
      #end
  #end
)

在 Javascript 中:

functionName(...args) 

...args 是一个剩余参数,它“将不定数量的参数表示为一个数组”。所以如果你需要数组以外的其他参数,记得把它们放在数组之前:

functionName(param1, param2, ...args)
于 2018-07-06T08:32:09.293 回答