Javascript의 Nashorn 평가 결과를 나중에 Java 클래스 파일로 변환하여 나중에 호출 할 수 있습니까? (예 : JSP -> Java -> 클래스 파일)Java 클래스로 컴파일 된 Nashorn 출력
Nashorn에서 HTML 출력을 생성하는 데 사용하는 Javascript 파일이 있습니다. javascript 파일에는 각 구성 요소마다 다른 기능이있어 각각에 대해 HTML 출력을 생성합니다. 이러한 구성 요소 기능은 해당 구성 요소의 구성 요소 이름과 JSON 데이터를 사용하는 "renderServer"기능을 통해 동적으로 호출됩니다.
private ScriptEngine nashorn;
ScriptEngineManager scriptEngineManager = new ScriptEngineManager(null);
this.nashorn = scriptEngineManager.getEngineByName("nashorn");
this.nashorn.eval(new FileReader(jsFile);
String compName="myComponent1";// Component 1 name
String jsonData="{....}";// JSON data input for myComponent
String formatted = "JSON.parse('" + jsonData + "')";
String htmlRender = "renderServer(\"" + myComponent1 + "\"," + formatted + ");";
Object finalResult = nashorn.eval(htmlRender);
나는 평가의 컴파일 된 출력을 생성하는 대신 구성 요소 이름을 입력 JSON을 전달하여 때마다 nashorn.eval 일을 같은 자바 클래스를 호출합니다. 달성 할 수 있습니까?
아니요, 불가능합니다. – Pointy
@ 포인트 : 정말요? Rhino에서 가능했습니다 ... –
@ T.J.Crowder ?? JavaScript를 "마치"마치 자바처럼 호출 할 수 있도록 랩핑 할 수 있지만 실제로는 JavaScript를 "컴파일"하는 것과는 다릅니다. Rhino에서 JavaScript를 평가 한 결과, Nashorn에 대해 알고있는 바에 따르면 평가 방법이 바이트 코드로 변환되지 않는다고 확신합니다. – Pointy