亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

javascript - java里如何調用js里的方法?

瀏覽:78日期:2023-10-16 18:03:00

問題描述

java里如何調用js里的方法

// js 代碼STRING_UTIL = {};STRING_UTIL.isNotEmpty = function (str){ return '' != str;}

// java 代碼Reader scriptReaderB = new InputStreamReader(new FileInputStream( new File('F:tech-studyjs-commreleasebundle.js')),'utf-8'); engine.eval(scriptReaderB); // engine.eval(scriptReaderA); if (engine instanceof Invocable){ // 調用JS方法 Invocable invocable = (Invocable)engine; Object result = invocable.invokeFunction('STRING_UTIL.isNotEmpty', new Object[]{'hahaha'}); System.out.println(result.toString()); }// 調用異常java.lang.NoSuchMethodException: no such method: STRING_UTIL.isNotEmpty at com.sun.script.javascript.RhinoScriptEngine.invoke(RhinoScriptEngine.java:286) at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(RhinoScriptEngine.java:258) at AAAAAAA.main(AAAAAAA.java:29)// 如果在添加一個全局函數function isNotEmpty (str){ return STRING_UTIL.isNotEmpty(str);}

將調用方法變成

Object result = invocable.invokeFunction('isNotEmpty', new Object[]{'hahaha'});

這樣是運行成功的

問題解答

回答1:

經過自己的實現,可以使用兩種方法來實現:

使用 engine.eval Object result = engine.eval('STRING_UTIL.isNotEmpty(’' + str + '’)'); 這種方式來調用。

使用invokeMethod方法來實現 首先get到對象

Object thiz = engine.get('STRING_UTIL'); 接下來根據對象調用方法 Object result = invocable.invokeMethod(thiz, 'isNotEmpty', new Object[]{'hahaha'});

再介紹一個本書給大家:《深入理解Java 7:核心技術與最佳實踐》這里面的第二章講得很詳細。有想去的可以取看看

回答2:

ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine javaScript = manager.getEngineByName('JavaScript');InputStream stream = JS.class.getResourceAsStream('/js/test.js');BufferedReader reader = new BufferedReader(new InputStreamReader(stream));javaScript.eval(reader);invocable = (Invocable) javaScript;invocable.invokeFunction('method');

invokeFunction 方法說明 第一個參數是方法名,之后的都是方法的參數,返回值是 object 。

回答3:

不可以java是后端語言,js是前端語言,java里是不能調js的代碼的

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久久亚洲欧洲日产国码二区 | 日韩三级中文 | 毛片免费在线 | 国产一区二区三区视频 | 亚洲综合国产一区在线 | 欧美一级特黄一片免费 | 国产亚洲自拍一区 | 黄色欧美视频 | 一级特黄色毛片免费看 | 久久―日本道色综合久久 | 欧美怡红院免费全视频 | 综合亚洲欧美日韩一区二区 | 欧美yyy| 国产99视频精品免费视频7 | 欧美精品一区二区三区四区 | 成人久久免费视频 | 一级国产精品一级国产精品片 | 91久久青青草原线免费 | 久久中文亚洲国产 | 萌白酱香蕉白丝护士服喷浆 | 成人看片黄a免费 | 国产波多野结衣中文在线播放 | 国产乱子视频 | 美女张开腿让男人桶爽动漫视频 | 国产三级在线观看视频 | 台湾三级香港三级在线中文 | 久久精品国产免费看久久精品 | 扒开双腿猛进入爽爽在线观看 | 国产精品欧美亚洲日本综合 | 国产精品久久久久久福利 | 国产在线免 | 欧美久在线观看在线观看 | 一级做人爱a视频正版免费 一级做性色a爱片久久片 | 国产精品久久久久久爽爽爽 | 大臿蕉香蕉大视频成人 | 国产成人a在一区线观看高清 | 国产呦精品系列在线 | 男人女人做黄刺激性视频免费 | 嫩模大尺度人体福利视频 | xxxwww欧美性| 免费亚洲成人 |