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

Nashorn/Rhino to convert a string from Java to Javascript

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

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

但是当我无法在 views 文件夹内的 .html 文件中调用这个变量时。如果我使用 ${array},Firebug 告诉我它不能将其识别为有效的 JS 字符串数组。我读过 Rhino 或 Nashorn 可以解决问题,但我不知道它们是否是最好和最简单的选择。有任何想法吗?谢谢!

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

我建议使用 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);

在您的特定情况下,您需要将特定渲染的播放输出配置为 application/json,并可能使用 render(jso.serialize(o)); 代替我给出的小片段。