您的位置:首页 > 编程语言 > Java开发

JAVA/GROOVY中调用脚本引擎的实现方式

2015-12-21 15:23 549 查看
import javax.script.Invocable

import javax.script.ScriptEngine

import javax.script.ScriptEngineManager

// 自带解析文字的方法

private static final String JSMETHOD = "function paperDecode(paperString){var ret='';paperString=unescape(paperString);for(var i=paperString.length;i>0;i--) {ret+=paperString.substr(i-1,1)} return ret}";

// 重写拼装文字的方法

private static final String PASEMETHOD = "function gen(){var tmp=''; for(var n = 0;n<tm.length;n++){tmp+=paperDecode(tm
)} return tmp}";

/**

* 将字符串转换成html对象

* @param result 字符串

* @return 详情页面对象

*/

def genDocTextHtml(result) {

String htmlTmp = "";

lock.lock();

try{

ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");

result = result.replace("<script language=\"javascript\">", "").replace("</script>", "").replace("document.getElementById('cc').innerHTML=html", "")

.replace("document.getElementById('cc').innerHTML+='. '", "")

.replace("setTimeout(show,100);", "");

engine.eval(JSMETHOD + "\n" + result + "\n" + PASEMETHOD);

if (engine instanceof Invocable) {

Invocable invoke = (Invocable) engine;

htmlTmp = (String) invoke.invokeFunction(PASEMETHODNAME);

}

}finally{

lock.unlock();

}

return htmlTmp;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: