我有用于Dust模板编译器调用的Rhino代码。
public RhinoTemplateCompiler(final Reader js) throws ScriptException
{
final ScriptEngine engine = getJavaScriptEngine();
this.invocable = (Invocable) engine;
engine.eval(js);
this.dust = engine.get("dust");
}
@Override
public String compile(final String templateName, final String template) throws Exception
{
return invocable.invokeMethod(dust, "compile", template, templateName).toString();
}
我想知道如果我必须在服务器端使用下划线,我必须做什么才能更改编译我的模板。
更新了
因此下划线模板方法具有以下参数
_.template = function(text, settings, oldSettings)
现在我按如下方式更改了我的调用方法
public RhinoTemplateCompiler(final Reader js) throws ScriptException
{
final ScriptEngine engine = getJavaScriptEngine();
this.invocable = (Invocable) engine;
engine.eval(js);
this.obj = engine.get("_");
}
@Override
public String compile(final String templateName, final String template) throws Exception
{
final Object object = invocable.invokeMethod(obj, "template", template, "", "").toString();
return object.toString();
}
我在调用后得到的返回对象是这个字符串
sun.org.mozilla.javascript.internal.InterpretedFunction@13cbd84f
我不确定我做错了什么,因为我期待一个已编译的模板。