JAVA调用JS实现

JAVA调用JS实现,第1张

后端JAVA开发有些代码逻辑其实在JS中很好实现,因为JS的对象定义不是很严格,避免了繁琐的POJO对象创建,JAVA标准库也提供了JS的调用引擎,方便我们直接复用JS的逻辑实现

注意定义JS方法接口中的方法名要与JS中的大小写完全一致,JS中的alert、console无法调用,但可以从异常捕获中获取调用异常的具体信息

代码参考:

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.io.FileReader;

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("Nashorn");
String path = GridReportBean.class.getClassLoader().getResource("").getPath();
path = path.replaceAll("%20", " ");
engine.eval(new FileReader(path + "static/asserts/cloudPrint.js"));
if (engine instanceof Invocable) {
     Invocable invocable = (Invocable) engine;
     ICloudPrint executeMethod = invocable.getInterface(ICloudPrint.class);
     cloudPrintData = executeMethod.dataWrapper(JSON.toJSONString(printData.get("Detail"))
                                    , cloudPrintPlatform, printerName);
}

public interface ICloudPrint {

    String dataWrapper(String dataArrayStr, String cloudPrintPlatform, String printer);

}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/924469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存