6 Haziran 2018 Çarşamba

JSR223 ScriptEngine Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.script.ScriptEngine;
constructor metodu
Şöyle yaparız.
ScriptEngineManager mgr = ...;
ScriptEngine engine = mgr.getEngineByName("JavaScript");
createBindings metodu
Elimizde şöyle bir js olsun.
var renderServer = function renderServer(server_data) {
   //your js logic...
   return html_string.
}
Şöyle yaparız.
try (InputStreamReader isr = new InputStreamReader(new URL(jsFilePath).openStream())) {

  NashornScriptEngine engine = (NashornScriptEngine) new ScriptEngineManager()
    .getEngineByName("nashorn");
  CompiledScript compiledScript = engine.compile(isr);
  Bindings bindings = engine.createBindings();

  compiledScript.eval(bindings);

  ScriptObjectMirror renderServer = (ScriptObjectMirror) bindings.get("renderServer");
  String html = (String) renderServer.call(null, jsonData);
  System.out.println(html);

} catch (Exception e) {
  e.printStackTrace();
}
eval metodu
Şöyle yaparız.
ScriptEngine engine = ...;
String foo = "40+2";
System.out.println(engine.eval(foo));


Hiç yorum yok:

Yorum Gönder