小编iqz*_*iqz的帖子

如何使用 Nashorn 将 Javascript 对象从 Java 传递到 Javascript

我有一个字符串形式的 JavaScript 对象(实际上来自数据库),我需要使用 Nashorn (Java 8)将其传递给 Javascript 函数。引擎将传递的参数视为 JavaScript 中的字符串。我希望它能够将其识别为 Javascript 对象。

下面是代码片段:

String script = "function genData(dataModel) { return 'hello world '+ dataModel.url.value + ' done'; }";  

//"{url : {value : "abc.com",type  : "string"},layout : {value : "",type  : "string"}}";  

String dataModel = "{url : {value : \"abc.com\",type  : \"string\"},layout : {value : \"\",type  : \"string\"}}";

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
Invocable inv = (Invocable) engine;
result = inv.invokeFunction("genData", dataModel);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:
javax.script.ScriptException: TypeError: Cannot read …

javascript java scriptengine nashorn

5
推荐指数
1
解决办法
4826
查看次数

标签 统计

java ×1

javascript ×1

nashorn ×1

scriptengine ×1