国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 都江堰市| 盐城市| 滨州市| 苏州市| 竹北市| 方正县| 从江县| 武义县| 成安县| 介休市| 唐山市| 师宗县| 滨州市| 葵青区| 托里县| 资兴市| 景泰县| 西峡县| 思茅市| 新民市| 绵竹市| 九龙城区| 白山市| 邓州市| 汕头市| 岳池县| 屏山县| 岢岚县| 青冈县| 罗城| 黑水县| 乌拉特中旗| 鄯善县| 泸定县| 涿州市| 临武县| 莱州市| 桑植县| 湾仔区| 施秉县| 昌乐县|