public class JavascriptEngine extends java.lang.Object implements IScriptEngine
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
callFunction(java.lang.String functionName,
java.lang.Object[] args)
调用初始化后的脚本中的JS函数,适用于一段脚本中有多个函数对象
|
void |
destory()
执行完成后的销毁
|
java.lang.Object |
evalScript(java.lang.String js,
java.io.PrintWriter writer,
java.lang.String jsname)
用于初始全局脚本
|
java.lang.Object |
evaluate(java.lang.String script)
执行脚本片断,如果有异常则返回null,如果是debug模式则返回为数组: [输出文本内容, 运行返回值]
|
static java.lang.Object |
executeByFunction(java.lang.String scripts,
java.lang.Object params) |
java.lang.Object |
executeFunction(java.lang.Object[] args,
java.lang.String funName)
配合evaluate($script)方法执行后,再执行里面的某个函数
|
java.lang.Object |
executeFunction(java.lang.String scripts,
java.lang.Object[] args,
java.lang.String funName)
如果是debug则需要检查返回值是否为数组,以确定调试的中间输出内容,参数2为执行返回值
返回null表示脚本解释错误,scripts需要自己封装,且以function 为前缀
|
int |
executeScript(java.lang.String scripts,
java.util.Map params) |
java.lang.String |
getErrMsg()
获取错误信息
|
static JavascriptEngine |
getInstance()
总是返回新的对象new,类似于工厂方法。
|
org.mozilla.javascript.Scriptable |
getScope() |
java.lang.Object |
getVariant(java.lang.String key)
获取脚本片断中的变量值,必须evaluate()方法执行后才有效
|
boolean |
isDebug() |
static org.mozilla.javascript.NativeArray |
javaArray2js(java.lang.Object objs,
org.mozilla.javascript.Scriptable scope) |
static java.lang.Object[] |
jsarray2java(org.mozilla.javascript.NativeArray array,
org.mozilla.javascript.Scriptable scope) |
static java.util.Map |
jsobject2map(org.mozilla.javascript.NativeObject obj,
org.mozilla.javascript.Scriptable scope) |
static void |
main(java.lang.String[] args) |
static org.mozilla.javascript.NativeObject |
map2Jsobject(java.util.Map m,
org.mozilla.javascript.Scriptable scope) |
void |
putAllObject(java.util.Map<java.lang.String,java.lang.Object> contextMap)
添加上下文环境变量
|
void |
putJsObject(java.lang.String varName,
java.lang.Object obj)
将Java对象$obj转换到JS运行环境中以$varName为引用变量名
|
IScriptEngine |
putObject(java.lang.String key,
java.lang.Object val)
设置全局变量
|
void |
setDebug() |
void |
setDebug(boolean bl)
设置为debug模式
|
public static JavascriptEngine getInstance()
public boolean isDebug()
isDebug
in interface IScriptEngine
public void setDebug()
public void setDebug(boolean bl)
IScriptEngine
setDebug
in interface IScriptEngine
public java.lang.Object evalScript(java.lang.String js, java.io.PrintWriter writer, java.lang.String jsname)
js
- writer
- public org.mozilla.javascript.Scriptable getScope()
public void destory()
IScriptEngine
destory
in interface IScriptEngine
public int executeScript(java.lang.String scripts, java.util.Map params)
scripts
- as String //需要执行的Js脚本map0
- as Maprequest
- as HttpServletRequest //用于传递给自定义处理接口的代码调用public void putJsObject(java.lang.String varName, java.lang.Object obj)
varName
- obj
- public java.lang.String getErrMsg()
IScriptEngine
getErrMsg
in interface IScriptEngine
public java.lang.Object callFunction(java.lang.String functionName, java.lang.Object[] args)
functionName
- as String //JS函数名,如果是执行JS函数脚本内容则调用executeFunction(...)args
- as Object[] //参数数组public static java.lang.Object executeByFunction(java.lang.String scripts, java.lang.Object params)
public java.lang.Object executeFunction(java.lang.String scripts, java.lang.Object[] args, java.lang.String funName)
executeFunction
in interface IScriptEngine
scripts
- as String //函数文本内容,而非函数名。函数名调用请用方法callFunction(..);args
- as Object[] //函数Function的参数funName
- as String //函数名,用于识别日志参数分类用public static void main(java.lang.String[] args)
scripts
- as String //需要执行的Js脚本map0
- as Maprequest
- as HttpServletRequest //用于传递给自定义处理接口的代码调用public static org.mozilla.javascript.NativeObject map2Jsobject(java.util.Map m, org.mozilla.javascript.Scriptable scope)
public static java.util.Map jsobject2map(org.mozilla.javascript.NativeObject obj, org.mozilla.javascript.Scriptable scope)
public static java.lang.Object[] jsarray2java(org.mozilla.javascript.NativeArray array, org.mozilla.javascript.Scriptable scope)
array
- as NativeArrayscope
- public static org.mozilla.javascript.NativeArray javaArray2js(java.lang.Object objs, org.mozilla.javascript.Scriptable scope)
public java.lang.Object evaluate(java.lang.String script) throws ScriptEvaluateException
IScriptEngine
evaluate
in interface IScriptEngine
ScriptEvaluateException
public java.lang.Object getVariant(java.lang.String key)
IScriptEngine
getVariant
in interface IScriptEngine
public java.lang.Object executeFunction(java.lang.Object[] args, java.lang.String funName) throws ScriptEvaluateException
IScriptEngine
executeFunction
in interface IScriptEngine
ScriptEvaluateException
public void putAllObject(java.util.Map<java.lang.String,java.lang.Object> contextMap)
IScriptEngine
putAllObject
in interface IScriptEngine
public IScriptEngine putObject(java.lang.String key, java.lang.Object val)
IScriptEngine
putObject
in interface IScriptEngine
Copyright © 2019 by Sucang.cn