您的位置 首页 >  博文

使用javax.script包实现Java设置JS脚本中的变量

下面例子中,我们通过javax.script包ScriptEngine.put()方法设置JS脚本中的变量,JS把所有在线用户输出。

 1package ajava.code.javase;
2import javax.script.ScriptEngineManager;
3import javax.script.ScriptEngine;
4import javax.script.ScriptException;
5import java.util.Date;
6
7public class AjavaAccessJavaObjectFromScript {
8   public static void main(String[] args) {
9       //创建用户数组,共5个用户
10       String[] users = {"mark""道长""笨笨""13810""way"};
11       Date now = new Date();
12       //脚本代码,输出所有在线用户及当前时间
13       String script =
14               "var index; " +
15               "var users = userArray; " +
16               "for (index in users) { " +
17               "    println(users[index]); " +
18               "}" +
19               "println('----------'); " +
20               "println('当前时间 (' + date+')'); ";
21       //获得JS脚本引擎
22       ScriptEngineManager manager = new ScriptEngineManager();
23       ScriptEngine engine = manager.getEngineByExtension("js");
24       //设置JS脚本中的userArray、date变量
25       engine.put("userArray", users);
26       engine.put("date", now);
27       try {
28           engine.eval(script);//执行JS脚本
29       } catch (ScriptException e) {
30           e.printStackTrace();
31       }
32   }
33}

运行结果:

1mark
2道长
3笨笨
413810
5way
6----------
7当前时间 (Tue Apr 03 14:35:13 CST 2012)


关于作者: 王俊南(Jonas)

昨夜寒蛩不住鸣。惊回千里梦,已三更。起来独自绕阶行。人悄悄,帘外月胧明。 白首为功名。旧山松竹老,阻归程。欲将心事付瑶琴。知音少,弦断有谁听。

热门文章