java中值传递6,jdk1.6中使用Rhino Javascript engine传递值的例子,jdk1.6rhino,Java下面是在jdk6...

jdk1.6中使用Rhino Javascript engine传递值的例子,jdk1.6rhino,Java下面是在jdk6

Java

下面是在jdk6中使用Rhino Javascript engine的例子。文档在[http://www.mozilla.org/rhino/ScriptingJava.html][1]package cn.outofmemory.jsimport java.util.Arrays;import java.util.List;import javax.script.ScriptEngineManager;import javax.script.ScriptEngine;import javax.script.ScriptException;public class Scripting01 { public static void main(String[] args) { ScriptEngineManager mgr = new ScriptEngineManager(); // we are using the rhino javascript engine ScriptEngine engine = mgr.getEngineByName("javascript"); // pass a Java collection to javascript List list1 = Arrays.asList ("Homer", "Bart", "Marge", "Maggie", "Lisa"); engine.put("list1", list1); String jsCode = "var index; " + "var values =list1.toArray();" + "println('*** Java object to Javascript');" + "for(index in values) {" + " println(values[index]);" + "}"; try { engine.eval(jsCode); } catch (ScriptException se) { se.printStackTrace(); } // pass a collection from javascript to java jsCode = "importPackage(java.util);" + "var list2 = Arrays.asList(['Moe', 'Barney', 'Ned']); "; try { engine.eval(jsCode); } catch (ScriptException se) { se.printStackTrace(); } List list2 = (List) engine.get("list2"); System.out.println("*** Javascript object to Java"); for (String val : list2) { System.out.println(val); } }}/* 输出 : *** Java object to Javascript Homer Bart Marge Maggie Lisa *** Javascript object to Java Moe Barney Ned*/

下面一个例子是将通过classpath加载js文件:

[scripting02.js]importPackage(java.util);var list1 = Arrays.asList (['Homer', 'Bart', 'Marge', 'Maggie', 'Lisa']);var listObject = { list2 : Arrays.asList (['Moe', 'Barney', 'Ned']), getList2 : function() { return listObject.list2; } };

```{.java}package cn.outofmemory.js

import java.io.InputStreamReader;import java.util.List;

import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;

public class Scripting02 { public static void main(String[] args) throws Exception{ ScriptEngineManager mgr = new ScriptEngineManager(); // we are using the rhino javascript engine ScriptEngine engine = mgr.getEngineByName("javascript");// the .js is in the classpathengine.eval(new InputStreamReader (Scripting02.class.getResourceAsStream("scripting02.js")));// retreive a javascript object directlyList list1 = (List )engine.get("list1");if (list1 != null) { for (String s : (List) list1) { System.out.println(s); }}System.out.println("***");// call a javascript function to retrieve an objectif (engine instanceof Invocable){ Invocable engineInv = (Invocable)engine; Object obj = engine.get("listObject"); Object list2 = engineInv.invokeMethod(obj, "getList2"); if (list2 != null) { for (String s : (List) list2) { System.out.println(s); } }}

}}

/* output : Homer Bart Marge Maggie Lisa

Moe Barney Ned*/

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值