国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

在JAVA程序中直接執(zhí)行JAVASCRIPT代碼(簡(jiǎn)單調(diào)用實(shí)例)

2019-11-17 04:03:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
JDK6.0支持java與JAVASCRipT之間的互相調(diào)用,下面的實(shí)例將演示幾種JAVA代碼調(diào)用執(zhí)行Javascript代碼的方法。

view plaincopy to clipboardPRint?
import javax.script.Invocable;   
import javax.script.ScriptEngine;   
import javax.script.ScriptEngineManager;   
import javax.script.ScriptException;   
  
public class Test {   
  
    public static void main(String[] args) {   
        ScriptEngineManager sem = new ScriptEngineManager();   
        ScriptEngine se = sem.getEngineByName("javascript");   
        try {   
            //調(diào)用直接JAVASCRIPT語(yǔ)句   
            se.eval("println('111');");   
            String tmpstr = "test string";   
            se.eval(("println('" + tmpstr + "');"));   
  
            //調(diào)用無(wú)參數(shù)方法JAVASCRIPT函數(shù)   
            se.eval("function sayHello() {"  
                    + "  print('Hello '+strname+'!');return 'my name is '+strname;" + "}");   
            Invocable invocableEngine = (Invocable) se;   
            se.put("strname", "testname");   
            String callbackvalue=(String) invocableEngine.invokeFunction("sayHello");   
            System.out.println(callbackvalue);   
               
            //調(diào)用有參數(shù)JAVASCRIPT函數(shù)   
            se.eval("function sayHello2(strname2) {"  
                    + "  print('Hello '+strname+'!');return 'my name is '+strname2;" + "}");   
            callbackvalue=(String)invocableEngine.invokeFunction("sayHello2", "testname2");   
            System.out.println(callbackvalue);   
               
        } catch (ScriptException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        } catch (NoSuchMethodException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
}  
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Test {

public static void main(String[] args) {
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");
try {
//調(diào)用直接JAVASCRIPT語(yǔ)句
se.eval("println('111');");
String tmpstr = "test string";
se.eval(("println('" + tmpstr + "');"));

//調(diào)用無(wú)參數(shù)方法JAVASCRIPT函數(shù)
se.eval("function sayHello() {"
+ "  print('Hello '+strname+'!');return 'my name is '+strname;" + "}");
Invocable invocableEngine = (Invocable) se;
se.put("strname", "testname");
String callbackvalue=(String) invocableEngine.invokeFunction("sayHello");
System.out.println(callbackvalue);

//調(diào)用有參數(shù)JAVASCRIPT函數(shù)
se.eval("function sayHello2(strname2) {"
+ "  print('Hello '+strname+'!');return 'my name is '+strname2;" + "}");
callbackvalue=(String)invocableEngine.invokeFunction("sayHello2", "testname2");
System.out.println(callbackvalue);

} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

執(zhí)行后,輸出結(jié)果如下:

111
test string
Hello testname!my name is testname
Hello testname!my name is testname2

      javax.script包為我們提供了不少用得上的類(lèi)和方法,這樣調(diào)用增加了前、后臺(tái)之間的交互性,JAVASCRIPT函數(shù)可寫(xiě)在前臺(tái)頁(yè)面中,實(shí)現(xiàn)內(nèi)容的變更對(duì)后臺(tái)無(wú)影響,不用重新編譯、發(fā)布即可生效。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆阳市| 南京市| 乐至县| 大余县| 许昌县| 荃湾区| 肥城市| 昌江| 荆州市| 满洲里市| 中卫市| 清丰县| 龙南县| 延寿县| 罗山县| 合江县| 文登市| 临城县| 肃南| 吉水县| 富平县| 九江县| 成安县| 朝阳区| 织金县| 清河县| 铜川市| 英吉沙县| 抚松县| 栾川县| 资阳市| 奉贤区| 清水河县| 南雄市| 天峨县| 淄博市| 吉木萨尔县| 临清市| 平潭县| 松潘县| 呈贡县|