Nashorn / Rhino将字符串从Java转换为Javascript

时间:2015-07-01 20:57:51

标签: javascript java arrays rhino nashorn

我正在使用 Play Framework ,我有一个.java控制器文件,我在其中获取了一个字符串数组。我想将此Java数组传递到将使用Javascript 的html文件,以便使用 Flot Charts 绘制数据。此数据“传输”在渲染中完成。它是这样的:

String[] array = new String[list.size()];
int i = 0;
for (Sample sample : list) {
    array[i++] = sample.getContent();
}
render(array);

但是当我无法在views文件夹中的.html文件中调用此变量时。如果我使用$ {array},Firebug告诉我它不会将它识别为有效的JS String数组。我已经读过Rhino或Nashorn可以做到这一点,但我不知道它们是否是最好和最简单的选择。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我不熟悉 Play Framework ,但我在java和javascript(使用Nashorn)中使用 SparkJava 做类似的事情。

我建议使用Boon库生成json:https://github.com/boonproject/boon

这是一个小的Nashorn片段,可以帮助您快速适应java:

// 1st we create a factory to serialize json out
var jso = new org.boon.json.JsonSerializerFactory().create();
// 2nd we directly use boon on array variable. Boon supports out of the box many pure java objects
jso.serialize(o);

在您的特定情况下,您需要将该特定呈现的Play输出配置为application/json,并可能使用render(jso.serialize(o));代替我提供的小代码。