簡體   English   中英

Rhino將java.lang.String轉換為JavaScript String

[英]Rhino conversion java.lang.String to JavaScript String

Context.javaToJS似乎只是直接傳遞java.lang.Strings。

我正在對JavaScript進行沙箱處理(根據http://codeutopia.net/blog/2009/01/02/sandboxing-rhino-in-java/ ),因此除非在JavaScript中打孔,否則java.lang.String在JavaScript中不可用。 ClassShutter (我寧願不這樣做)。

我是否缺少明顯的東西?

嘗試這個:

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
ScriptContext context = engine.getContext();
context.setAttribute("jsString", "I am Java String", ScriptContext.ENGINE_SCOPE);
context.setAttribute("jsBoolean", true, ScriptContext.ENGINE_SCOPE);
context.setAttribute("jsNumber",  123456, ScriptContext.ENGINE_SCOPE);
engine.eval("function getValueAndType(obj){return obj + ' - ' + typeof obj;}");
Assert.assertEquals("Something wen wrong", "I am Java String - string", engine.eval("getValueAndType(jsString)"));
Assert.assertEquals("Something wen wrong", "true - boolean", engine.eval("getValueAndType(jsBoolean)"));
Assert.assertEquals("Something wen wrong", "123456 - number", engine.eval("getValueAndType(jsNumber)"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM