使用Java处理JavaScript
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Java处理JavaScript,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4258字,纯文字阅读大概需要7分钟。
内容图文
直接上代码了,没什么好说的
package com.tiamaes.gjds.script; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * <p>类描述: javascript处理器 </p> * <p>创建人:王成委 </p> * <p>创建时间:2015年1月22日 上午11:16:08 </p> * <p>版权说明: ? 2015 Tiamaes </p> */ public class JavascriptProcesser { private static ScriptEngine scriptEngine; private static final String MEDIA_TYPE = "application/javascript"; /** * <p>方法描述:获取javascript引擎管理器</p> * <p>创建人: 王成委 </p> * <p>创建时间: 2015年1月10日 上午10:50:06 </p> * @param createNew * @return */ public ScriptEngine getScriptEngineManager(boolean createNew){ if(createNew){ ScriptEngineManager mgr = new ScriptEngineManager(); return mgr.getEngineByMimeType(MEDIA_TYPE); }else if(scriptEngine == null){ ScriptEngineManager mgr = new ScriptEngineManager(); scriptEngine = mgr.getEngineByMimeType(MEDIA_TYPE); } return scriptEngine; } /** * <p>方法描述:从javascript中获取变量的值</p> * <p>创建人: 王成委 </p> * <p>创建时间: 2015年1月10日 上午10:50:06 </p> * @param script * @param varName * @return * @throws ScriptException */ public Object getByVariableName(String script,String varName) throws ScriptException{ ScriptEngine scriptEngine = this.getScriptEngineManager(true); scriptEngine.eval(script); return scriptEngine.get(varName); } /** * <p>方法描述:执行javascript方法</p> * <p>创建人: 王成委 </p> * <p>创建时间: 2015年1月10日 上午10:50:06 </p> * @param script * @param funName * @param params * @return * @throws ScriptException * @throws NoSuchMethodException */ public Object invokeFunction(String script,String funName,Object...params) throws ScriptException, NoSuchMethodException{ ScriptEngine scriptEngine = this.getScriptEngineManager(true); scriptEngine.eval(script); Invocable inv = (Invocable) scriptEngine; Object obj = inv.invokeFunction(funName,params); return obj; } /** * <p>方法描述:获取js引擎</p> * <p>创建人: 王成委 </p> * <p>创建时间: 2015年1月10日 上午10:50:06 </p> * @param script * @return * @throws ScriptException */ public ScriptEngine getScriptEngine(String script) throws ScriptException{ ScriptEngine scriptEngine = this.getScriptEngineManager(true); scriptEngine.eval(script); return scriptEngine; } }测试方法
package com.tiamaes.gjds.script; import static org.junit.Assert.*; import javax.script.ScriptException; import org.junit.Test; /** * <p>类描述: 测试 JavascriptProcesser,仅测试{@link JavascriptProcesser#getByVariableName(String, String)} * 和{@link JavascriptProcesser#invokeFunction(String, String, Object...)}</p> * <p>创建人:王成委 </p> * <p>创建时间:2015年1月23日 下午5:50:10 </p> * <p>版权说明: ? 2015 Tiamaes </p> */ public class JavascriptProcesserTest { JavascriptProcesser processer = new JavascriptProcesser(); /** * Test method for {@link com.tiamaes.gjds.script.JavascriptProcesser#getByVariableName(java.lang.String, java.lang.String)}. * @throws ScriptException */ @Test public void testGetByVariableName() throws ScriptException { String script = "var name='jaune'"; String value = (String) this.processer.getByVariableName(script, "name"); assertEquals("jaune", value); } /** * Test method for {@link com.tiamaes.gjds.script.JavascriptProcesser#invokeFunction(java.lang.String, java.lang.String, java.lang.Object[])}. * @throws ScriptException * @throws NoSuchMethodException */ @Test public void testInvokeFunction() throws NoSuchMethodException, ScriptException { String script = "function getName(){return 'jaune'}"; String value = (String) this.processer.invokeFunction(script, "getName"); assertEquals("jaune", value); } /** * Test method for {@link com.tiamaes.gjds.script.JavascriptProcesser#invokeFunction(java.lang.String, java.lang.String, java.lang.Object[])}. * @throws ScriptException * @throws NoSuchMethodException */ @Test public void testInvokeFunctionWithParams() throws NoSuchMethodException, ScriptException { String script = "function getName(name){return name}"; String value = (String) this.processer.invokeFunction(script, "getName","jaune"); assertEquals("jaune", value); } }
原文:http://blog.csdn.net/jaune161/article/details/43058785
内容总结
以上是互联网集市为您收集整理的使用Java处理JavaScript全部内容,希望文章能够帮你解决使用Java处理JavaScript所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。