It's just the code, there's nothing to say.
Package Com.tiamaes.gjds.script;import Javax.script.invocable;import Javax.script.scriptengine;import Javax.script.scriptenginemanager;import javax.script.scriptexception;/** * <p> class Description: JavaScript processor </p> * & Lt;p> founder: Wang Cheng </p> * <p> created: January 22, 2015 Morning 11:16:08 </p> * <p> Copyright Note: ©2015 tiamaes </p> * /public class Javascriptprocesser {private static scriptengine scriptengine;private static final String media_type = "Appl Ication/javascript ";/** * <p> method Description: Get JavaScript engine manager </p> * <p> Creator: Wang Cheng </p> * <p> creation time: January 10, 2015 morning 10:50:06 </p> * @param createNew * @return */public scriptengine Getscriptenginemanager (Boolean Create New) {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> Method description: Get the value of a variable from JavaScript </p> * <p> Creator: Wang Cheng </p> * <p> created: January 10, 2015 morning 10:50:06 </p> * @param s Cript * @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> Method Description: Execute JavaScript method </p> * <p> Creator: Wang Cheng </p> * <p> created: January 10, 2015 morning 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); I Nvocable INV = (invocable) scriptengine; Object obj = inv.invokefunction (funname,params); return obj;} /** * <p> method Description: Get JS engine </p> * <p> Creator:Wang Cheng </p> * <p> creation time: January 10, 2015 morning 10:50:06 </p> * @param script * @return * @throws scriptexception */pu Blic scriptengine Getscriptengine (String script) throws Scriptexception{scriptengine ScriptEngine = This.getscriptenginemanager (True); Scriptengine.eval (script); return scriptengine;}}
Test method
Package Com.tiamaes.gjds.script;import static Org.junit.assert.*;import Javax.script.scriptexception;import org.junit.test;/** * <p> class Description: Test Javascriptprocesser, test only {@link javascriptprocesser#getbyvariablename (String, String)} * and {@link javascriptprocesser#invokefunction (string, String, Object ...)} </p> * <p> Creator: Wang Cheng </p> * <p> created: January 23, 2015 PM 5:50:10 </p> * <p> Copyright Note: ©2015 Tiamaes </p> */public class Javascriptprocessertest {javascriptprocesser processer = new Javascriptprocesser ();/** * Test m Ethod for {@link com.tiamaes.gjds.script.javascriptprocesser#getbyvariablename (java.lang.String, java.lang.String) }. * @throws scriptexception */@Testpublic void Testgetbyvariablename () throws scriptexception {String script = "var name= ' J Aune ' "; 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 */@Testpublic void Testinvokefunction () throws Nosuchmethodexc Eption, 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 */@Testpublic void Testinvokefunctionwithparams () throws Nosuc Hmethodexception, scriptexception {String script = "function GetName (name) {return name}"; String value = (string) this.processer.invokeFunction (script, "GetName", "jaune"); Assertequals ("Jaune", Value);}}
Working with JavaScript using Java